【问题标题】:What does '$?' mean in bash scripts? [duplicate]'$?' 是什么意思?在 bash 脚本中是什么意思? [复制]
【发布时间】:2012-04-19 09:33:26
【问题描述】:

可能重复:
What does “$?” give us exactly in a shell script?

$? 在 bash 脚本中是什么意思?示例如下:

#!/bin/bash
# userlist.sh

PASSWORD_FILE=/etc/passwd
n=1           # User number

for name in $(awk 'BEGIN{FS=":"}{print $1}' < "$PASSWORD_FILE" )

do
  echo "USER #$n = $name"
  let "n += 1"
done

exit $?

【问题讨论】:

  • 最近执行的命令的返回值/退出状态。
  • 抱歉重复了。 “美元?”很难搜索。

标签: bash syntax


【解决方案1】:
$?

是返回的最后一个错误(或成功):

$?
1: command not found.
echo $?
127

false 
echo $?
1

true 
echo $?
0

最后的出口:

exit $?

是多余的,因为 bash 脚本无论如何都会以该状态退出。引用手册页:

Bash 的退出状态是脚本中执行的最后一个命令的退出状态。

【讨论】:

  • 感谢您添加退出 $?是多余的。
猜你喜欢
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 2015-07-15
  • 2018-07-17
  • 2012-08-13
  • 1970-01-01
相关资源
最近更新 更多