shell中的$?
shell会执行每一条指令,并将该指令的返回结果赋值给$?,然后继续执行下一条指令
1 上一条指令是exe,则就是exe的返回值(return)
2 上一条指令是shell脚本,则就是shell脚本的返回值(如exit 127,则$? = 127,否则就是该shell脚本的$?值)
3 上一条指令是脚本函数,则就是脚本函数的返回值(return),因为脚本函数会当成是一个自定义的命令来看待
set -e的作用(改变上述的默认行为)
执行过程中,任何一条语句出现错误(即$?不等于0),则停止执行后续指令,直接从shell退出(退出码即为$?)
网友评论