Question

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?

Was it helpful?

Solution

|| 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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top