Снижение производительности компьютера при подключении к сети переменного тока Dell Latitude e5420

| - оператор трубы. Из этого man sh:

Конвейер - это последовательность из одной или нескольких команд, разделенных символом |. Стандартный вывод каждой команды, кроме последней, соединен трубой (2) со стандартным входом следующей команды. Каждая команда запускается как отдельный процесс; оболочка ждет завершения последней команды. Значение конвейера - это статус выхода его последней команды.
A | B | C

Будет принимать стандартный вывод A (то, что он печатает на экране), и передать его в качестве стандартного ввода, например, то, что вы вводите в интерактивном режиме, а B дает свое начало C.

history | grep word

history печатает всю историю вашей оболочки, а grep печатает строки, соответствующие шаблону, поэтому это находит каждую запись в истории вашей оболочки, в которой вы использовали word, потому что grep читает STDIN, если в качестве аргумента не указано имя файла.

history | tail -n10 | head -n5 

Получает первые 5 строк из последних 10 строк из history, потому что tail и head оба читаются STDIN, когда имя файла не указано.

С другой стороны, || является логическим оператором OR, который точно эквивалентен тому же оператору на языках C и C. Опять же, из этого man sh:

Конвейер - это последовательность из одной или нескольких команд, разделенных символом |. Стандартный вывод каждой команды, кроме последней, соединен трубой (2) со стандартным входом следующей команды. Каждая команда запускается как отдельный процесс; оболочка ждет завершения последней команды. Значение конвейера - это статус выхода его последней команды.

stat filename || echo "no such file or directory" 
stat filename && echo "file exists"

Символы & amp; & amp; и || соответственно, приводят к тому, что следующий список должен выполняться только в том случае, если предыдущий конвейер возвращает нулевое или ненулевое значение соответственно. Новые строки могут отображаться в списке, а не в точках с запятой, для разграничения команд.

Если stat не находит имя файла, он возвращает ненулевой статус выхода, и если он это делает, он успешно завершается с 0 Это обратное к C. (Очень надуманные примеры, как stat, дают такую ​​информацию в любом случае.)

stat filename
if [ $? -gt 0 ]; then
  echo "no such file or directory"
fi

Они по существу такие же, как и короткие, чем проверка состояния выхода последней команды явно :

0
задан 20 December 2011 в 03:42

0 ответов

Другие вопросы по тегам:

Похожие вопросы: