问题
我正在尝试编写一个包装phpbrew switch
的bash脚本,以便我可以同时切换apache模块。一切正常,但我无法让phpbrew switch php-7.0.01
正常运行。
代码($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
进入终端
./ 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 / bin中:/ sbin目录:/ bin中:在/ usr /游戏:在/ usr /本地/游戏
答案 0 :(得分:3)
好的,所以设法在github
上得到答案我需要做的就是把
source $HOME/.phpbrew/bashrc
phpbrew switch php-${version}
在bash文件中调用命令之前。在脚本中显然没有从我的家庭目录中拉出bashrc。