Что делает || значит в.screenrc?

Команда, основанная на команде Рэмпиона

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

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

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

2 ответа

Решение

|| почти или оператор.

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

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

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

Для получения дополнительной информации вы можете прочитать справочную страницу на sh. То, что вы ищете, находится в разделе "Списки".

Snippet:

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

command1 || command2

Команда2 выполняется тогда и только тогда, когда команда1 возвращает ненулевое состояние выхода.

Статус возврата списков AND и OR - это статус выхода последней команды, выполненной в списке.

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