2016-03-27 3 views
0

Hellou. Я хотел бы спросить вас, как я могу узнать, хорошо ли работает какое-либо действие в команде. Например, когда у меня есть command1 | xargs -ls -lA | command2 | command3

Как найти возвращаемый номер функции xargs ls -lA, где может быть проблема.

Или лучше, как я могу перенаправить ошибки из STDOUT (Причина, когда им sreaching корневой каталог, Есть лс не может получить доступ к ошибкам) ​​спасибо

ответ

1

Неясно, что вы пытаетесь достичь, так что я буду попробуйте ответить на несколько возможностей. Я также ограничу ответы на Bash, так как это оболочка большинства пользователей * nix сегодня:

  • Вы хотите, чтобы конвейер останавливался при ошибке в любой из четырех команд. Вы не можете этого сделать, если не хотите замедлить трубопровод на read в каждой строке вывода от command1, а затем с помощью break или set -o errexit, чтобы вернуться к соответствующему уровню при сбое.
  • Вы хотите записать вывод ошибки для команды ls. Вы можете сделать это, используя redirection: command1 | xargs -ls -lA 2>ls.log | command2 | command3
  • Как только конвейер завершится, вы хотите узнать, не сработала ли какая-либо из команд. Вы можете сделать это, проверив содержимое PIPESTATUS.
Смежные вопросы