What does || mean in .screenrc?

Command based on Rampion's command

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

|| read does not mean or in the command. read seems to be a built-in -command about which I did not find explanation in my OS X's manuals.

What does || mean in the command?

Upvotes: 2

Views: 415

Answers (2)

exclsr
exclsr

Reputation: 3357

What MitMaro said. It's a parameter for the shell, or /bin/sh in this case. (Technically it's not a "parameter" (that's a different term) but it's part of the shell's "grammar.")

For details, you can read the man page on sh. What you're looking for is under the "Lists" section.

Snippet:

An OR list has the form

command1 || command2

command2 is executed if and only if command1 returns a non-zero exit status.

The return status of AND and OR lists is the exit status of the last command executed in the list.

Upvotes: 3

MitMaro
MitMaro

Reputation: 5927

|| is nearly 'or' operator.

In the code example above it will first run less /tmp/manual and if it returns a value that is not true it will run read. If the first command returns a true value then the read command is not performed because of short circuiting.

Thanks to Michiel: please note that the operator is not commutative such that it is not mathematical OR.

Upvotes: 5

Related Questions