运行命令在bash脚本中产生错误

问题

我试图编写一个包装phpbrew switchbash脚本,以便我可以同时切换apache模块。 一切正常,除了我不能让phpbrew switch php-7.0.01正常运行。

代码 (由input馈送的$version

 if [ -v version ]; then phpbrew switch php-$version fi 

错误

无效的参数php-7.0.1

运行phpbrew switch php-7.0.1执行没有错误。

有没有什么奇怪的事情与phpbrew? 还是我想在bash中做些傻事?

完整的脚本

 #!/bin/bash # wraps phpbrew switch to enable apache switching module_path=/usr/lib/apache2/modules if [ $1 ]; then echo "switching php to version ${1}..." if [ $1 = "5.6.4" ]; then set=5 version=5.6.4 so_path=libphp5.6.4.so fi if [ $1 = "5.6.15" ]; then set=5 version=5.6.15 so_path=libphp5.6.15.so fi if [ $1 = "7.1" ]; then set=7 version=7.0.1 so_path=libphp7.1.0-dev.so fi fi echo "version selected = ${version}" if [ -v version ]; then phpbrew switch php-$version echo "" > /etc/apache2/mods-available/php7.load echo "" > /etc/apache2/mods-available/php5.load echo "LoadModule php${set}_module $module_path/${so_path}" > /etc/apache2/mods-available/php${set}.load service apache2 restart else echo "no version set" fi 

进入terminal

./switchphp.sh 7.1

完整的输出

 switching php to version 7.1 version selected = 7.0.1 Invalid argument php-7.0.1 

额外的信息

$ PATH输出:

/home/matt/.phpbrew/php/php-7.0.1/bin:/home/matt/.phpbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/斌:/ sbin目录:/ bin中:在/ usr /游戏:在/ usr /本地/游戏

好的,所以设法在github上得到答案

我所需要做的就是放

 source $HOME/.phpbrew/bashrc phpbrew switch php-${version} 

在bash文件中的命令调用之前。 很明显,在剧本中,我并没有把我的家里的bashrc拉出来。