2015-11-21 2 views
0

Я пытаюсь проверить, не строна ли строка ни одной из двух строк. Например, в C++, это было бы записать так:Bash: строка if-statement равно-string1 ИЛИ равно-string2

if (string1 != string2 || string1 != string3) 

Однако попытки создать Bash эквивалентную

if [ "$string1" != "$string2" || "$string1" != "$string3" ] 

приводит к ошибке [: missing ']' и (contents of string1): command not found.

Я не совсем уверен, что вызывает его, но поиск не принес никаких результатов, которые я мог бы использовать. Было бы очень полезно, если бы можно было указать, как код, который я использую, можно изменить в соответствии с потребностями и, если возможно, предоставить образец кода.

Заранее благодарен! Гарри

+2

'] || ['<----- – andlrc

ответ

1

По крайней мере три варианта здесь:

if [ "$string1" != "$string2" ] || [ "$string1" != "$string3" ] 

Или:

if [ "$string1" != "$string2" -o "$string1" != "$string3" ] 

Или:

if [[ "$string1" != "$string2" || "$string1" != "$string3" ]] 
+0

Или' [["$ string1"! = "$ String2"]] || [["$ string1"! = "$ string3"]] ' – l0b0

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