我正在尝试学习shell脚本,我需要理解其他人的代码。$是什么?变量?我没法搜索答案,因为他们屏蔽了标点符号。
当前回答
$ ?用于查找最后一次执行命令的返回值。 在shell中尝试以下操作:
ls somefile
echo $?
如果somefile存在(不管它是文件还是目录),你将得到ls命令抛出的返回值,它应该是0(默认的"success"返回值)。如果它不存在,你应该得到一个不是0的数字。确切的数字取决于程序。
对于许多程序,您可以在相应的手册页中找到这些数字及其含义。这些通常被描述为“退出状态”,并可能有自己的部分。
其他回答
这是上次执行的函数/程序/命令的退出状态。请参考:
退出/退出状态@ tldp.org 特殊Shell变量@ tldp.org 特殊字符@ tlpd.org
$ ?是命令的退出状态,这样您就可以对一系列命令进行菊花链接。
例子
command1 && command2 && command3
如果command1的$?输出成功(0),如果$?command2将产生成功
$ ?最后执行命令的结果(退出码)。
先前执行的流程的返回值。
10.4获取程序的返回值 在bash中,程序的返回值存储在一个特殊的变量中 名为$ ?。 这说明了如何捕获程序的返回值,I 假设dada目录不存在。(这也是 迈克建议) #!/bin/bash CD /dada &> /dev/null Echo rv: $? CD $(pwd) &> /dev/null Echo rv: $?
更多细节请参见Bash编程手册。
$ ?用于查找最后一次执行命令的返回值。 在shell中尝试以下操作:
ls somefile
echo $?
如果somefile存在(不管它是文件还是目录),你将得到ls命令抛出的返回值,它应该是0(默认的"success"返回值)。如果它不存在,你应该得到一个不是0的数字。确切的数字取决于程序。
对于许多程序,您可以在相应的手册页中找到这些数字及其含义。这些通常被描述为“退出状态”,并可能有自己的部分。
推荐文章
- 查看PS命令的全部输出
- 确保一次只运行一个shell脚本实例的快速方法
- 如何在Makefile中设置子进程的环境变量
- 如何让“wc -l”打印没有文件名的行数?
- 有效地测试Linux上的端口是否打开?
- 如何从另一个文件A中删除文件B中出现的行?
- Shell脚本删除超过n天的目录
- 如何检查shell脚本中是否存在命令?
- 如何使用查找命令从列表中查找所有具有扩展名的文件?
- 如何打破一个循环在Bash?
- 如何合并2 JSON对象从2个文件使用jq?
- 如何运行一个PowerShell脚本而不显示窗口?
- PowerShell:仅为单个命令设置环境变量
- 删除Bash脚本中的重复条目
- 如何将Bash命令的输出分配给变量?