我在下面的代碼中遇到了 if 陳述句的問題。它有三個不同的論點,我不確定其中一個或全部是錯誤的。
#!/bin/sh
1=C
2=S
(1/2)=C <---- This might be a problem
if [ $1 == "C*" ]
then
echo "The city is:"
else [ $2 == "S*" ]
then
echo "The state is:"
else [ $1 -a $2 == "B*" ]
then
echo "The city and state is:"
else [ $1 -o $2 -ne "C*" "S*" "B*" ]
then
echo "Not found!"
fi
echo End of script
uj5u.com熱心網友回復:
使用數字作為變數是非常不明智的想法。數字用于表示命令列引數。
這種結構也是 AFAIK 未知的 bash:(1/2)=C
還有這個結構:
else [ $2 == "S*" ]
then
錯了,應該是這樣的:
elif [ $2 == "S*" ]
then
還有這個:
else [ $1 -o $2 -ne "C*" "S*" "B*" ]
是奇數,您使用-ne
which 用于比較數字,用于字串!=
還有很多其他的錯誤/問題挑戰我沒有時間提及的結構。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/532741.html
上一篇:使用回圈創建多個.sh檔案