对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 阅读(409)
评论(0) 编辑 收藏 引用 所属分类:
Program