shell中分别给null和unset的变量赋值问题

代码一:
$ str= # 设为 null
$ var=${str=expr}
$ echo $var
$ echo $str

代码二:
$ unset str # 取消
$ var=${str=expr}
$ echo $var
expr
$ echo $str
expr

为何同样的 var=${str=expr} 在 null 与 unset 之下不同呢?
哪位高手帮我分析下原理。谢谢啦!

1、在赋值的的时候, 等号前后一定不要有空格。
代码一输出一个行(包含一个空格)
2、设置一个变量为null, 与unset这个变量, 并不是一回事。
#var3=$V3
#echo $var3 没输出
#
一个未初始化的变量将会是"null"值 - 就是未赋值(但并不是代表值是0!)。
参见网址:http://www.cublog.cn/u3/103983/showart_2340293.html
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-25
这没什么原理可言,就是 bash变量扩展规定的用法:

${var:=abc}
var 如果 unset 或者 null, 给 var 赋值成 abc,同时 ${var:=abc} 扩展成 abc

${var=abc}
var 如果 unset , 给 var 赋值成 abc,同时 ${var=abc} 扩展成 abc (此时只判断是否unset,不判断是否为null)本回答被提问者采纳
第2个回答  2011-06-25
date是shell的时间命令
通过调用这个命令可以得到时间
var=`date "+%Y%m%d %H%M%S"`
``之间的是shell命令,包裹起来就可以将结果传给前面的变量,""之间的是想要的时间格式
具体可以用date --help查看

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网