Что делает || значит в .screenrc? - PullRequest
2 голосов
/ 13 июля 2009

Команда на основе Команда Rampion

screen /bin/sh -c '/usr/bin/man `cat "$@"` > /tmp/manual | less /tmp/manual || read'

|| read не означает или в команде. read кажется встроенной командой, о которой я не нашел объяснения в руководствах по моей OS X.

Что означает || в команде?

Ответы [ 2 ]

5 голосов
/ 13 июля 2009

|| - это оператор 'or'.

В приведенном выше примере кода он сначала запустится less /tmp/manual, а если он вернет значение, которое не соответствует истине, он запустит read. Если первая команда возвращает истинное значение, то команда чтения не выполняется из-за короткого замыкания.

Благодаря Michiel : обратите внимание, что оператор не является коммутативным, поэтому он не является математическим ИЛИ.

3 голосов
/ 13 июля 2009

Что сказал МитМаро. Это параметр для оболочки, или / bin / sh в этом случае. (Технически это не «параметр» (это другой термин), но это часть «грамматики» оболочки).

Подробнее см. Справочную страницу на sh . То, что вы ищете, находится в разделе «Списки».

Отрывок:

Список ИЛИ имеет форму

command1 || command2

command2 выполняется тогда и только тогда, когда command1 возвращает ненулевое значение статус выхода.

Статус возврата списков И и ИЛИ является статусом выхода последнего команда выполнена в списке.

...