使用简单的bash shell脚本退出奇怪的行为

时间:2011-08-04 15:05:35

标签: bash unix shell behavior

我开始玩ShellScript Unix了,所以也许这是一个愚蠢的问题。如果是这种情况,请道歉。

我试图处理退出代码以正确解决我的代码中的不利情况,为此,我创建了一个代码片段来理解unix退出行为。这是:

#!/usr/bin/bash
RES=1

if [ $RES -eq 0 ]
then    
    echo "Finishing with success!"
    exit 0
else    
    echo "Finishing with error!" 
    exit 1
fi

我明白,一旦代码被调用(并终止),我会回到bash提示符。但是,退出指令似乎也在离开bash。这是正常的吗?也许这与我的开发环境有关?

以下是消息......

bash-3.00$ . errtest.sh
Finishing with error!
$ echo $?
1
$ bash
bash-3.00$ which bash
/usr/bin/bash

作为参考,我添加了返回和bash位置。希望它有所帮助。

提前致谢!

1 个答案:

答案 0 :(得分:4)

这是因为您在当前环境中获取脚本(使用。命令)。尝试使用以下任一项执行脚本:

bash ./errtest.sh

或者给脚本文件提供必要的权限并执行它:

chmod u+x ./errtest.sh
./errtest.sh