brew切换php版本不生效的改进方案
mac环境随时随地方便的切换php版本,前提如下: Mac 环境, zsh为默认shell 安装了brew 通过brew 安装了多个版本的php 基本方式 举例,从php.7.4切换到php8.1 brew unlink php7.4 && brew link --overwrite --force php@8.1 到这一步,如果运行 php -v ,那么版本还是7.4 ,因为还需手动更新.zshrc文件中的PATH路径,以确保使用正确的PHP版本。 vim ~/.zshrc #注释掉下面两行 export PATH="/usr/local/opt/php@7.4/bin:$PATH" export PATH="/usr/local/opt/php@7.4/sbin:$PATH" #手动添加如下两行 export PATH="/usr/local/opt/php@8.1/bin:$PATH" export PATH="/usr/local/opt/php@8.1/sbin:$PATH" #保存后运行下面命令之使生效 source ~/.zshrc 改进方式 将上面提到的命令写成bash脚本,一次运行。 #!/bin/zsh if [ "$1" = "7.4" ]; then brew unlink php@8.1 && brew link --overwrite --force php@7.4 sed -i '' '/php@[0-9\.]*\//d' ~/.zshrc echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc elif [ "$1" = "8.1" ]; then brew unlink php@7.4 && brew link --overwrite --force php@8.1 sed -i '' '/php@[0-9\.]*\//d' ~/.zshrc echo 'export PATH="/usr/local/opt/php@8.1/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/usr/local/opt/php@8.1/sbin:$PATH"' >> ~/.zshrc else echo "Invalid argument. Please enter either '7.4' or '8.1'." exit 1 fi source ~/.zshrc 文件需要保存为.zsh后缀,首行声明 #!/bin/zsh , 否则会报错:Oh My Zsh can’t be loaded from: sh. You need to run zsh instead. 因为脚本在Bash中运行,而不是在zsh中运行。解决办法是将脚本转换为zsh脚本,将脚本的文件扩展名从.sh更改为.zsh,然后在脚本的开头添加以下行:#!/usr/bin/env zsh; 或者脚本的开头添加以下行:#!/bin/zsh ...