Что '-a' делает в сценариях Unix Shell - PullRequest
2 голосов
/ 11 октября 2010

Что означает -a в строке ниже.

if [ "${FILE_SYSTEM}" != "xyz" -a "${FILE_SYSTEM}" != "abc" ]

Ответы [ 4 ]

5 голосов
/ 11 октября 2010

Это означает логический и оператор.

Если оба операнда имеют значение true, тогда условие будет истинным, в противном случае оно будет ложным.

В вашем случае условие в if будет истинным, если переменная $FILE_SYSTEM не xyz и не abc.

5 голосов
/ 11 октября 2010

man test

 EXPRESSION1 -a EXPRESSION2
              both EXPRESSION1 and EXPRESSION2 are true
2 голосов
/ 11 октября 2010

В тесте сценария оболочки (открытая скобка) это означает «и», поэтому, если файловая система var не равна xyz AND и не равна abc, тест завершается успешно.

1 голос
/ 23 октября 2010

эквивалент

if [ "$x" != "a" -a "$x" != "b" ]; then
    do_one_thing
else
    do_other_thing
fi

есть

case "$x" in
    a|b) do_other_thing ;;
    *)   do_one_thing ;;
esac
...