1
爲什麼OR條件在下面的bash腳本中不起作用?Bash or condition in IF
read number
if [ "$number" != 1 -o "$number" != 2 ] ; then echo not 1 or 2 fi
if [ "$number" == 1 -o "$number" == 2] ; then echo 1 or 2 fi
exit
爲什麼OR條件在下面的bash腳本中不起作用?Bash or condition in IF
read number
if [ "$number" != 1 -o "$number" != 2 ] ; then echo not 1 or 2 fi
if [ "$number" == 1 -o "$number" == 2] ; then echo 1 or 2 fi
exit
我想這和它的作品:
#!/bin/bash
read number
if [ "$number" != 1 -o "$number" != 2 ];then
echo not 1 or 2
fi
if [ "$number" == 1 -o "$number" == 2 ];then
echo 1 or 2
fi
exit
輸出:
[~]$./test1.sh
2
not 1 or 2
1 or 2
反正按照正確的語法和你的第一個輸出消息,你應該這樣做:
#!/bin/bash
read number
if [ "$number" -ne 1 ] && [ "$number" -ne 2 ];then
echo not 1 or 2
fi
if [ "$number" -eq 1 ] || [ "$number" -eq 2 ];then
echo 1 or 2
fi
exit
輸出:
[~]$./test1.sh
1
1 or 2
[~]$./test1.sh
2
1 or 2
[~]$./test1.sh
3
not 1 or 2
[~]$./test1.sh
4
not 1 or 2
問候 克勞迪奧
應該不是第一個是'[ 「$號」!= 1 -a 「$號」!= 2]'? – user000001
你應該總是以什麼方式指定*它不起作用。你期待什麼結果,你實際得到了什麼結果,以及這種情況發生在哪些輸入上? –
謝謝,抱歉浪費你的時間,我應該用-a代替-o。不管價值是多少,我都會得到「不是1或2」的結果。 – Darknifem