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

Mee*_*ohi 17 syntax bash

可能重复:
"$?"在shell脚本中给出了什么?

$?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 $?
Run Code Online (Sandbox Code Playgroud)

use*_*own 20

$?
Run Code Online (Sandbox Code Playgroud)

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

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

false 
echo $?
1

true 
echo $?
0
Run Code Online (Sandbox Code Playgroud)

出口到底:

exit $?
Run Code Online (Sandbox Code Playgroud)

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

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