對shell不熟,偶爾會現一些我無法理解的現象。此時該進行debug了,可選的方法有:
a. echo變量的值
b. shell –x
此外,
Remember that the shell spends a lot of its life substituting text.(
http://linuxcommand.org/wss0100.php)例如,對于下面的程序:
hex108@Gentoo ~ $ cat test.sh
#!/bin/sh
var=
if [ $var = "y" ] ;then
echo "yes"
fi
if語句里的var變量經替換后變為 if [ = "y" ],些時當然會出錯。
hex108@Gentoo ~ $ ./test.sh
./test.sh: line 3: [: =: unary operator expected
ps:現在寫腳本的時候傾向于使用perl,而較少使用shell ,因為對于經常使用的腳本,可能會經常需要對它不停地進行改進,慢慢的,程序越來越大,該考慮重構了, 此時才會發現perl(python等“真正的”腳本語言)比shell相對來說更好重構。
posted on 2011-04-23 00:23
hex108 閱讀(434)
評論(0) 編輯 收藏 引用 所屬分類:
Program