Tiny немного проще: вам не нужно проверять $?
w / system
, и поскольку команда, которую вы запустили, будет выводить на stderr
сама, вы обычно можете просто не выходить из нуля, а не вызывать исключение с ужасной трассировкой стека:
system("<command>") || exit(1)
Так что вы можете сделать еще один шаг и сделать:
(system("<command 1>") &&
system("<command 2>") &&
system("<command 3>")) || exit(1)
... что приведет к короткому замыканию и сбою при ошибке (в дополнение к тому, что его трудно прочитать).
Ссылка: из документа Ruby 2.0 для system
(хотя верно и для 1.8.7):
система возвращает true
, если команда дает нулевой статус выхода, false
для ненулевого статуса выхода.
* ** тысячу двадцать-один * -doc.org одна тысяча двадцать-два / ядро-2.0.0 / Kernel.html # метод-я-система