macport 多版本php快速切换自定义命令pvm shell脚本

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

猜你喜欢

转载自blog.csdn.net/tekin_cn/article/details/143180269