Я время от времени использовал эту технику:
$ pgrep <process name> || <process name>
До pgrep
это раньше делалось этот путь:
$ ps -eaf | grep -q <[p]rocess name> || <process name>
Бит с [p]
делает его так, чтобы grep
не окажется в результате.
$ ps -eaf | grep -q [s]leep || sleep 10
cat << EOF >&2
...
EOF
Или:
cat >&2 << EOF
...
EOF
или:
>&2 cat << EOF
...
EOF
или:
usage() {
cat << EOF
...
EOF
} >&2
Использование функции {
- это синтаксис ksh
. Он имеет смысл только в реализациях AT & T KSH
, где функции определены, что ведут себя по-разному. В других снарядах этот нестандартный синтаксис, где поддерживается, ведет себя так же, как для использования Bourne / Posix () {
синтаксис.