2014-10-27 2 views
0
$i="500,600" 
$j="600" 

if[$i -ne $j]; then 
    #some line 
else 
    #some line 
fi 

Это условие не входит внутрь.Shell Script логический оператор для условий

это если состояние не удастся. иначе это пропуск.

как это возможно

может кто-то поможет мне в этом

+3

Интервал важен, используйте: 'if [$ i! = $ J]; затем ' – anubhava

ответ

1

Хитрость заключается в том, чтобы рассмотреть «[» знак в качестве команды (на самом деле это один действительно), чей последний аргумент должен быть "]". Поэтому вы должны убедиться, что после [и все его аргументы идут в нужное место). В вашем случае:

if [ "$i" -ne "$j" ] 
then 
    # some code 
else 
    # some code 
fi 

Так как [это команда, вы можете опустить, если структуру и использовать логические операторы, пользуясь ленивыми вычислений. Следующие средства:

[ "$i" -ne "$j" ] && { 
    echo "hello" ; 
    echo "world" ; 
} || { 
    echo "bye bye" ; 
    echo "world" ; 
} 
+0

да .. но я должен использовать! = вместо -ne, если мы сравниваем строку и целое число. я попытался с помощью ["$ i"! = "$ j"], тогда он работал отлично. Является ли это, если мы сравниваем строку и целое число, тогда нам нужно использовать! = вместо -ne? –

+0

Да, это так. Точно так же! = Для произвольного сравнения строк, тогда как -ne полезно, если оба его аргумента можно интерпретировать как целое. –

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