在使用 shell script 時,如果要使用 if 判斷句,可以這樣寫
if [ "${name}" = "Jack" ]; then
echo "I'm Jack"
fi
如果要判斷2個條件時,可以用 && 來同時判斷,但要注意寫法
if [ "${name}" = "Jack" && "${year}" = "30" ]; then
echo "I'm Jack and I'm 30 years old"
fi
要小心!這樣的寫法是錯的,這不是在寫 C !
要改成
if [ "${name}" = "Jack" ] && [ "${year}" = "30" ]; then
echo "I'm Jack and I'm 30 years old"
fi
要注意紅色的括號!
因為容易犯這個錯,所以在這裡記下來~
2013年3月14日 星期四
2012年11月13日 星期二
Linux Shell Script 空字串比較
在 shell script 中遇到一件奇怪的事,雖然了解之後也就沒什麼,但是在找問題的過程中,真的是困擾很久。因為問題是出在 Embedded System 的環境上,所以一開始看到的訊息很難猜到它大概位置,只好土法練鋼,一段一段地執行,邊執行邊找問題點。它的訊息是這樣的
沒有行數,沒有關鍵字元,真是不知道問題在哪!在重開了不知道幾次的機器之後,終於讓我找到問題是什麼!
#Find thd path while SD card plugin
if [ -e /mnt/sd ]; then
mmc=`ls /mnt/sd`
fi
if [ ${mmc} != "" ]; then
#Do something
fi
sh: : unknown operand
沒有行數,沒有關鍵字元,真是不知道問題在哪!在重開了不知道幾次的機器之後,終於讓我找到問題是什麼!
#Find thd path while SD card plugin
if [ -e /mnt/sd ]; then
mmc=`ls /mnt/sd`
fi
if [ ${mmc} != "" ]; then
#Do something
fi
訂閱:
文章 (Atom)