Как узнать статус завершения всех частей команды с использованием конвейера: ls | this_doesnt_exist | wc

echo ${PIPESTATUS[@]}


Команда «echo ${pipestatus[@]}» позволяет узнать статус завершения всех подкоманд, выполняемых с использованием конвейера (перенаправления вывода через » | «). В данном примере команда «ls» выводит содержимое текущей директории, затем «this_doesnt_exist» представляет несуществующую команду, а «wc» подсчитывает количество строк, слов и символов в полученном выводе. Параметр «${pipestatus[@]}» возвращает список статусов завершения каждой подкоманды в порядке, определенном конвейером. Если статус выполнения команды «this_doesnt_exist» равен нулю, это означает, что она успешно выполнилась. В противном случае, статус будет отличным от нуля, указывая на ошибку. Альтернативой может быть использование конструкции «|&», которая перенаправляет не только стандартный вывод, но и вывод ошибок.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *