我正在尝试学习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将产生成功
推荐文章
- 如何从查找“类型d”中排除此/ current / dot文件夹
- 只使用md5sum获取哈希值(没有文件名)
- 使用sh shell比较字符串
- 在Bash中测试非零长度字符串:[-n "$var"]或["$var"]
- 如何创建Bash别名?
- 如何设置ssh超时时间?
- 将所有变量从一个shell脚本传递到另一个?
- 只列出UNIX中的目录
- 如何删除shell脚本中文件名的扩展名?
- 'find -exec'是Linux中的shell函数
- 临时更改bash中的当前工作目录以运行命令
- 重定向复制的标准输出到日志文件从bash脚本本身
- Shell脚本for循环语法
- Docker入口点运行bash脚本被“拒绝权限”
- Chmod递归