分页: 1 / 1

[问题]shell变量使用问题

发表于 : 2008-08-14 8:36
boswellyoung
在shell中使用变量时,如

代码: 全选

TMP_VAR=1
echo $TMP_VAR
echo ${TMP_VAR}
echo "${TMP_VAR}"
这三者有什么区别么?

亦或

代码: 全选

TMP_VAR=1
if [ $TMP_VAR = "1" ]; then
...
fi

if [ ${TMP_VAR} = "1" ]; then
...
fi

if [ "${TMP_VAR}" = "1" ]; then
...
fi
有什么区别么?

发表于 : 2008-08-14 9:25
xiooli
第一个和第二个没啥区别,括起来要规范些,如果变量的名字不只一个字母的最好括起来,如果没括假如有两个变量TMP_VAR 和TMP,那机器就不知道是哪个了。最外面打括号是让变量的值结合成一体,免得判断错误,拿你那个if语句来说:if [ ${TMP_VAR} = "1" ]; then ,如果${TMP_VAR}的值为a b c,那么就会出现:bash: [: 过多的参数 这样的错误,而括起来就不会。