首页 > Linux操作系统 > Linux操作系统 > shell 变量赋值问题
大家写代码的时候, 需要注意一个问题.
尤其是 shell 脚本的变量,
如果变量 的取值 是由 命令 计算得的的.
比如 :
file=`ls -rt |head -1`
类似这种计算问题 给 变量赋值 .
如果变量还需要参与下一步操作.
需要验证 这个 $file 是空值 .
比如 rm -rf $file
$file =''
整个目录会清空
if [ "X$file" = "X" ]
then
##变量为空值
exit
else
do something ..........
fi
if [ -z "$a" ]
then
echo xx
fi
xx
if [ -n "$a" ]
then
echo xx
fi
这里是有坑的
test 这个命令 关于 -n -z 的说明.
-n STRING
the length of STRING is nonzero
-z STRING
the length of STRING is zero
$ a= $ echo $a $ if [ -n $a ]; then echo xx; fi xx $ if [ -z $a ]; then echo xx; fi xx $ if [ -z "$a" ]; then echo xx; fi xx $ if [ -n "$a" ]; then echo xx; fi -n "$file" 是可以正确判断 变量长度为 0 . -n $file 不能正确判断 变量长度为 0 . $ bash $ if [ -z $a ]; then echo xx; fi xx $ if [ A$a = 'A' ]; then echo xx; fi xx $ if [ -n $a ]; then echo xx; fi xx $ if [ -n "$a" ]; then echo xx; fi $ if [ -z "$a" ]; then echo xx; fi xx $ echo $a $ echo "$a" $ echo -e "$a"
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-2854373/ ,如需转载,请注明出处,否则将追究法律责任。