Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > *NIX системы: Общие вопросы > bash скрипт. получить статус завершения команды |
Автор: boostcoder 27.9.2010, 20:14 | ||
всем привет. есть скрипт. в нем что-то вроде:
мне нужно получить статус завершения каждой команды, и на основании его, решить, выполнять ли другие команды? спасибо. |
Автор: djamshud 27.9.2010, 20:16 | ||
Добавлено через 52 секунды Хм. Оперативненько:) |
Автор: boostcoder 27.9.2010, 20:26 |
djamshud, а как мне это в if записать? |
Автор: djamshud 27.9.2010, 20:36 | ||||
Ну, думаю, понятно, что для каждой команды $? можно запомнить в отдельную переменную или массив. А дальше man test, он используется внутри if. Сам я if не люблю, сделал бы так, к примеру:
Если же нужны разные действия на разные сочетания кодов возврата, то примерно так
|
Автор: boostcoder 27.9.2010, 20:47 | ||
если я тебя правильно понял, то должно получиться что-то вроде этого:
? |
Автор: djamshud 27.9.2010, 20:52 | ||
Почти. Только ret-ы нужно получать так:
Ну и так далее в том же духе. |
Автор: boostcoder 27.9.2010, 20:57 |
понял. спасибо ![]() |
Автор: djamshud 27.9.2010, 20:58 |
Да не за что. |
Автор: bilbobagginz 27.9.2010, 21:25 | ||||||
boostcoder, есть несколько вариантов. вариант I если решил реально обрабатывать, то нередко в бАшке удобно создать 1 обработчик результатов: грубо говоря - продолжаем, если 0, или вылетаем если не 0:
используем:
вариант II: используем направление обработки операторов bash:
&& обрабатывается слева направо. т.е. если c1 вернул 0, bash продолжит выполнять цепочку. если нет - вылетит. т.е. если тебе нужна причина вылета, таким способом ея не получишь. |
Автор: boostcoder 27.9.2010, 21:28 |
bilbobagginz, о! спасибо большое ![]() |