首页 文章

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

提问于
浏览
2

problem

我试图编写一个包装 phpbrew switch 的bash脚本,以便我可以同时切换apache模块 . 一切正常,除了我无法让 phpbrew switch php-7.0.01 正常运行 .

code$version 由输入提供)

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

error

无效的参数php-7.0.1

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

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

full script

#!/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

entry into terminal

./switchphp.sh 7.1

full output

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

extra info

$ 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 /本地/游戏

1 回答

  • 3

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

    所有我需要做的就是放

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

    在bash文件中调用命令之前 . 显然没有在脚本中从我的家庭目录中拉出bashrc .

相关问题