bash" -e"益智游戏:脚本文件意外结束

时间:2017-10-21 08:15:53

标签: bash shell

为了说清楚,我会缩短我的bash脚本:

#!/bin/bash -e  

p_time=$(expr 0 - 0)
echo ?
echo "process time(sec) is: " ${p_time}  

文件将在" echo?"之前结束,但如果我改变" p_time = $(expr 0 - 0)"到" p_time = $(expr 3 - 0)",文件将正确结束 但是,如果我删除" -e"在第一句中,文件也正确结束 为什么会这样?

1 个答案:

答案 0 :(得分:2)

bash -e表示Exit immediately if a command exits with a non-zero status.

0 - 0的结果为0,因此expr 0 - 0的退出代码为1,Bash将立即退出。如果删除-e,Bash将忽略expr 0 - 0的退出代码,并将执行脚本中的所有命令。