- 论坛徽章:
- 0
|
都是关于shell的
“嗯... 好吧,我就解釋一下 var=${str=expr} :
首先,var=$str 這個大家都可理解吧。
而接下來的思考方向是,究竟 $str 這個變量是如下哪一種情況呢:
1) unset
2) null
3) not null
1) 假如是 unset ,那麼 var=${str=expr} 的結果將是:
var=expr
str=expr
2) 假如是 null ,那 var=${str=expr} 的結果是:
var=
str=
3) 假如是 not null (比方為 xyz ),那 var=${str=expr} 之結果是:
var=xyz
str=xyz”
我不理解 var=${str=expr}这条命令的运行原理,按照通常情况,不是应该先判断{}里面的内容,即“str=expr”(把expr赋值给str),然后再执行“var=$str”的么?
如果是这样的话,按照上面第三条,“str不为null,str=xyz”
那首先执行“str=expr”,这样的话str的值不就已经变为expr了么
然后执行“var=$str”,即将expr赋值给var
最后输出echo $var的话,var的值不是应该是expr么,为什么网中人老师的帖中还是“var=xyz str=xyz”?
《鸟哥》中关于shell方面也有这样的内容,当时就不解。。
求论坛的高人点拨。。。。谢谢了!! |
|