问:

linux $?

答:
如果上一个命令成功执行,$?的值为 0,条件判断为真,则会执行 then 语句。
如果上一个命令执行失败,$?的值为非 0,条件判断为假,则会执行 else 语句。
所以,$? 变量允许我们根据上一个命令的执行结果来选择性地执行语句。这在 bash 脚本中是一个很有用的特性。
除此之外,$? 还有其他一些用法:
- 可以累积上多个命令的退出状态。例如命令1;命令2;命令3,此时$?会存储命令3的退出状态。
- 可以和逻辑运算符一起使用,例如 $? -eq 0 用于判断上个命令是否成功执行。
- 一个命令的退出状态值范围是 0 到 255。0-127 表示正常退出,128-255 表示异常退出。
- 可以在 shell 函数中使用 $? 来获取函数的退出状态。
总之,$? 变量在 bash 脚本中是一个非常有用的特性,允许我们灵活地控制脚本的执行流程。