У меня есть такой бит кода, который работает просто отлично;
if [ "$1" == "something1" ] || [ "$1" == "something2" ] || [ "$1" == "something3" ]; then
echo "Result is $1"
# do stuff here if $1 is not equals to one of the above "somethings"
fi
$ ./script.sh something2
Result is something2
Однако, когда я заменяю операторы равенства (==
) на не равные (!=
), тогда просто больше не работает.
Пример:
if [ "$1" != "something1" ] || [ "$1" != "something2" ] || [ "$1" != "something3" ]; then
echo "Result is $1"
# do stuff here if $1 is not equals to one of the above "somethings"
fi
$ ./script.sh something2
Result is something2
Не нужно было печатать Result is something2
. Я добавил это в свой bash скрипт #!/bin/bash -x
, чтобы увидеть проблему, и там написано + [[ something2 != something1 ]]
, когда я запускаю скрипт как ./script.sh something2
, так что определенно что-то здесь не так.
Я в основном хочу, чтобы он продолжал оператор if, если $1
не равен одному из somethings
, в противном случае пропустите.
Чего мне не хватает?