Выход из состояния команд перед последней командой

817
Amit Kumar Gupta

В OS X, Linux и других системах вы можете использовать, $?чтобы получить код завершения последней команды. Есть ли способ выхода из кодов старых команд? Или сказать «дай мне код выхода nthпредыдущей команды» или сказать «дай мне код выхода процесса с PID p»?

0
Вы можете добавить коды выхода самостоятельно в файл после ввода команд w17t 10 лет назад 0

1 ответ на вопрос

1
Arkenklo

Код выхода команды выводится только один раз, и если его не обрабатывать дальше, единственное, что сохраняет этот код выхода, - это оболочка. bashсохраняет только код завершения для последней команды.

Чтобы найти код выхода старых команд, вам нужно сохранить их в переменную, например:

$ echo "This command will succeed" $ exitcode=$?  ...  $ echo $exitcode 0 
Спасибо за ответ. Можете ли вы указать мне некоторую документацию, подтверждающую, что bash сохраняет только последний код выхода? Amit Kumar Gupta 10 лет назад 0
Я не могу найти ничего явно заявляющего об этом, но статусы выхода по природе теряются, если явно не сохранены. В `man bash` в разделе" Специальные параметры "мы находим определение для $? `Расширяется до состояния выхода последнего выполненного переднего конвейера`. В руководстве по bash нет упоминаний о поиске старых состояний выхода. Arkenklo 10 лет назад 0