2013-02-06 114 views
0

我试图编写一个脚本,以便在我的路径中自动切换php5.3和5.4。虽然导出在我执行时会起作用,但它在脚本中运行时不会执行任何操作。导出工作在命令行但不是在bash脚本

这里是我的脚本

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

任何建议或想法如何解决它或做不同的事情?

编辑:该代码是缺少一个else第一回波后,肯特注意到了和我编辑。代码现在以两种方式运行!只有当$1-v

如果$1-v,你的脚本不执行任何

+0

脚本预计2个参数,你注意到了吗? – Kent

+0

感谢您的评论,不幸的是我忘了在问题中输入它。现在它被编辑了。 –

+0

由于@Kent注意到我在if语句中有错误。随着。 ./chphp.sh -v 3命令现在可以工作。 –

回答

1

你的脚本将设置瓦尔。检查您的脚本第一if-then

这是否有帮助吗? (设置PHP5.3东西)

source ./chphp.sh foo 3 
+0

你说得对。我认为我的眼睛很累。我打算把第一个回声之后的部分代码放到else中。谢谢您的帮助 :) –

相关问题