我正在尝试学习shell脚本,我需要理解其他人的代码。$是什么?变量?我没法搜索答案,因为他们屏蔽了标点符号。


当前回答

运行最后一个命令的退出代码。

其他回答

它非常适合用于调试,以防使用set -e时脚本退出。例如,输入echo $?命令后,该命令导致退出并查看返回的错误值。

它是上次执行命令返回的错误代码。0 =成功

$ ?用于查找最后一次执行命令的返回值。 在shell中尝试以下操作:

ls somefile
echo $?

如果somefile存在(不管它是文件还是目录),你将得到ls命令抛出的返回值,它应该是0(默认的"success"返回值)。如果它不存在,你应该得到一个不是0的数字。确切的数字取决于程序。

对于许多程序,您可以在相应的手册页中找到这些数字及其含义。这些通常被描述为“退出状态”,并可能有自己的部分。

先前执行的流程的返回值。

10.4获取程序的返回值 在bash中,程序的返回值存储在一个特殊的变量中 名为$ ?。 这说明了如何捕获程序的返回值,I 假设dada目录不存在。(这也是 迈克建议) #!/bin/bash CD /dada &> /dev/null Echo rv: $? CD $(pwd) &> /dev/null Echo rv: $?

更多细节请参见Bash编程手册。

$ ?是命令的退出状态,这样您就可以对一系列命令进行菊花链接。

例子

command1 && command2 && command3

如果command1的$?输出成功(0),如果$?command2将产生成功