Что такое $? означает в сценариях bash?

Возможный дубликат:
Что означает "$?" дайте нам точно в оболочке script?

Что означает $? в bash script? Пример ниже:

#!/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

$?

- последняя полученная ошибка (или успех):

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

false 
echo $?
1

true 
echo $?
0

Выход в конце:

exit $?

является излишним, так как bash script все равно выйдет с этим статусом. Ссылаясь на страницу руководства:

Bash Состояние выхода - это статус выхода последней команды, выполненной в script.