代码一:
$ 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
代码一输出一个行(包含一个空格)
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)本回答被提问者采纳
${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查看
通过调用这个命令可以得到时间
var=`date "+%Y%m%d %H%M%S"`
``之间的是shell命令,包裹起来就可以将结果传给前面的变量,""之间的是想要的时间格式
具体可以用date --help查看