什么'$?'在bash脚本中意味着什么?

时间:2012-04-05 16:08:00

标签: bash syntax

  

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

b $?在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 $?

1 个答案:

答案 0 :(得分:18)

$?

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

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

false 
echo $?
1

true 
echo $?
0

最后的出口:

exit $?

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

  

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