2014-12-03 6 views

ответ

2

Используйте либо

if [ "$1" = "postfix" ] || [ "$1" = "all" ]; then 

или

if [ "$1" = "postfix" -o "$1" = "all" ]; then 

|| объединяет две команды (и [ - это команда). В пределах [ ... ] оператор -o используется для или.

Другой способ использования || - использовать его внутри [[ вместо [.

В любом случае, правильный оператор равенства = внутри [ ... ], как это стандарт POSIX (по man bash). == поддерживается.

1

Если вы хотите сделать это, используйте [[ тест форму:

if [[ $1 == "postfix" || $1 == "all" ]; then 

[[ является Баш ключевым словом, аналогичным (но более мощным чем) команда [. См http://mywiki.wooledge.org/BashFAQ/031 и http://mywiki.wooledge.org/BashGuide/TestsAndConditionals Если вы не пишете для POSIX ш, мы рекомендуем [[

или

if [ "$1" == "postfix" ] || [ "$1" == "all" ]; then 
+0

В моем ответе нет большой разницы, поэтому ⁺¹ от меня ;-) – Alfe

Смежные вопросы