macportz中安装的多个版本的php的快速切换shell脚本, 为了偷懒少敲几个命令而做的这个shell脚本。 把这个加入到 ~/.zshrc文件后可以用非常简短的命令快速对多个php版本进行切换和管理。
pvm.sh代码:
#!/bin/sh
# macport安装的多PHP版本管理工具,用于快速却换当前环境中的默认PHP版本。
# 使用方法 sh pms.sh -v 版本号
# 使用帮助 sh pms.sh -h
# @author tekintian@gmail.com
# @link http://dev.tekin.cn
#
# 注意:建议在使用本脚本时先在 ~/.bash_profile文件中增加环境变量输出配置, 配置项目如下:
# 放入~/.bash_profile时注意去除 ## 当前已经安装的PHP版本数组获取
php_vers=$(/opt/local/bin/port select --list php|awk 'NR>=3{print $1}' |gsed 's/php//g')# 脚本帮助信息
help () {echo "PHP版本却换帮助:"# echo "使用方法:sh $0 参数 如:sh $0 -v 8.2 "echo "使用方法:~/pvm.sh 参数 如:~/pvm.sh -v 8.2 "echo "-h 显示此帮助"echo "-l 列出当前系统中已经安装的PHP版本"echo "-v 8.2 将当前系统中的默认PHP版本设置为8.2"echo "-d 重置为8.2版本 这里后面不需要加版本号"echo "注意版本号不需要输入小版本,且必须先安装"exit 1
}
# 显示当前已经安装的PHP版本
# 如:版本号:82 安装路径:/opt/local/bin/php82
show_php_vers(){for v in $php_vers;doecho "版本号:${v} 安装路径: /opt/local/bin/php${v}"doneecho "详细信息见目录 /opt/local/var/macports/software 中php开头的软件包"exit 1
}# 获取用户输入
while getopts ":v:dhl" opt
docase $opt inv)DEFAULT_PHP_VER=$OPTARG;;d)DEFAULT_PHP_VER="82";;l)show_php_vers;;h)help;;?)echo "Unknown parameter"exit 1;;esac
done# 未输入参数时显示帮助信息
if [ -z ${DEFAULT_PHP_VER} ];thenhelp
fi# 获取用户输入的DEFAULT_PHP_VER参数,默认 8.2
DEFAULT_PHP_VER=${DEFAULT_PHP_VER:-"82"}# 判断版本中是否包含.
if [[ "${DEFAULT_PHP_VER}" =~ "." ]]; then# 去除默认版本中的. 如将 8.2 替换为 82DEFAULT_PHP_VER=`echo ${DEFAULT_PHP_VER}|sed 's/\.//g'`
fi# 判断版本是否存在, 路径如 /opt/local/bin/php82
if [ -f "/opt/local/bin/php${DEFAULT_PHP_VER}" ]; then# 执行port select php版本却换sudo port select --set php "php${DEFAULT_PHP_VER}"echo "php版本却换成功! 当前默认php版本为:php${DEFAULT_PHP_VER}"
elseecho "你输入的版本 ${DEFAULT_PHP_VER} 不存在!\n"echo "请确认你已经通过 sudo port install php${DEFAULT_PHP_VER} 安装过!"exit 1
fi
pvm命令别名设置
将上面的代码保存为 pvm.sh 保存到合适的地方,然后在~/.zshrc文件里面增加一个自定义别名 pvm
alias pvm="~/pms.sh "
生效 source ~/.zshrc
pvm自定义命令使用:
显示当前已安装的PHP版本列表: pvm -l
切换当前PHP版本为 8.2版本: pvm -v 8.2