Почему мой ответ отображается как обычный комментарий, а не как ответ на конкретный комментарий?

Переменная $? редко требуется. Псевдо-идиома command; if [ $? -eq 0 ]; then X; fi всегда должна быть записана как if command; then X; fi.

Случаи, когда требуется $?, необходимо проверить на несколько значений:

command
case $? in
  (0) X;;
  (1) Y;;
  (2) Z;;
esac

или когда $? необходимо повторно использовать или иным образом манипулировать:

if command; then
  echo "command successful" >&2
else
  ret=$?
  echo "command failed with exit code $ret" >&2
  exit $ret
fi
0
задан Ubaid Parvez 11 March 2019 в 14:24
поделиться