我开始玩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位置。希望它有所帮助。
提前致谢!
答案 0 :(得分:4)
这是因为您在当前环境中获取脚本(使用。命令)。尝试使用以下任一项执行脚本:
bash ./errtest.sh
或者给脚本文件提供必要的权限并执行它:
chmod u+x ./errtest.sh
./errtest.sh