export在命令行中运行,但不在bash脚本中运行

时间:2013-02-06 16:19:23

标签: shell unix variables

我试着写一个脚本,以便在我的路径中自动切换php5.3和5.4。虽然导出在我执行它时起作用,但它在脚本内运行时什么也不做。

这是我的剧本

#!/bin/bash
# chphp
# Switch between php versions 5.3 and 5.4

FIXED_PATH=/here/is/my/path

if [ "$1" != "-v" ]
then
    echo "Wrong usage of the script.\n"
else
    if [ "$2" == 3 ]
    then
            export PATH="$FIXED_PATH:/path/to/php-5.3/bin"
            export PHP_INI_SCAN_DIR=""
    elif [ "$2" == 4 ]
    then
            export PATH="$FIXED_PATH:/path/to/php-5.4/bin"
            export PHP_INI_SCAN_DIR="/path/to/php-5.4/etc/php-dbg.d"
    else
            echo "Wrong usage of the script.\n"
    fi
fi

我也尝试了以下内容,我通过搜索类似问题找到了这些内容,但是他们没有工作

. ./chphp.sh -v 3

和这个

source ./chphp.sh -v 3

我有什么建议或想法可以解决它或做不同的事情吗?

编辑:在第一个回声之后代码丢失了一个其他的,正如肯特注意到的那样,我编辑过的。现在代码现在以两种方式运行!

1 个答案:

答案 0 :(得分:1)

只有当$1 -v

时,您的脚本才会设置变量

如果$1-v,则您的脚本不执行任何操作。检查您的脚本第一个if-then

这有帮助吗? (设置php5.3的东西)

source ./chphp.sh foo 3