1
這裏是我的發言:哪些錯誤與如果shell腳本語句
print "Ss $# $2" >&3
if [ $# -eq 4 || $# -eq 3 ] && [ $2 != "d" ]
then
print "sss"
else
print "lol"
fi
輸出是:
Ss 4 s
lol
爲什麼 「SSS」 未被顯示?
這裏是我的發言:哪些錯誤與如果shell腳本語句
print "Ss $# $2" >&3
if [ $# -eq 4 || $# -eq 3 ] && [ $2 != "d" ]
then
print "sss"
else
print "lol"
fi
輸出是:
Ss 4 s
lol
爲什麼 「SSS」 未被顯示?
您的if條件在語法上不正確。括號內不能有||
。將其更改爲使用-o
代替:
if [ $# -eq 4 -o $# -eq 3 ] && [ $2 != "d" ]
then
print "sss"
else
print "lol"
fi
,或者甚至更好,使用[[
(如果你的外殼支持的話),這是更安全,具有更多的功能。它支持||
:
if [[ ($# -eq 4 || $# -eq 3) && $2 != "d" ]]
then
print "sss"
else
print "lol"
fi
+1來使用'[['' – 2012-01-10 14:11:31
你正在使用哪個shell? – Sjoerd 2012-01-10 10:02:46
ksh shell我正在使用 – footy 2012-01-10 10:11:43