macportz中安装的多个版本的php的快速切换shell脚本, 为了偷懒少敲几个命令而做的这个shell脚本。 把这个加入到 ~/.zshrc文件后可以用非常简短的命令快速对多个php版本进行切换和管理。
pvm.sh代码:
#!/bin/sh
# macport安装的多PHP版本管理工具,用于快速却换当前环境中的默认PHP版本。
# 使用方法 sh pms.sh -v 版本号
# 使用帮助 sh pms.sh -h
# @author [email protected]
# @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;do
echo "版本号:${v} 安装路径: /opt/local/bin/php${v}"
done
echo "详细信息见目录 /opt/local/var/macports/software 中php开头的软件包"
exit 1
}
# 获取用户输入
while getopts ":v:dhl" opt
do
case $opt in
v)
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} ];then
help
fi
# 获取用户输入的DEFAULT_PHP_VER参数,默认 8.2
DEFAULT_PHP_VER=${DEFAULT_PHP_VER:-"82"}
# 判断版本中是否包含.
if [[ "${DEFAULT_PHP_VER}" =~ "." ]]; then
# 去除默认版本中的. 如将 8.2 替换为 82
DEFAULT_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}"
else
echo "你输入的版本 ${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