LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: zhengyp

a=b; c=${a=d}; echo $c 的结果是b 的问题

[复制链接]
发表于 2008-5-16 19:43:38 | 显示全部楼层
怎么我觉得这里有点像LinuxEden了?那里的版主说话就很有“个性”。
回复 支持 反对

使用道具 举报

发表于 2008-5-16 19:50:28 | 显示全部楼层
Post by ly5066113;1849430

${file+my.file.txt} :假如 $file 設為空值或非空值,均使用 my.file.txt 作傳回值。(沒設定時不作處理)
请教一下,这里,那么返回值就在unset和my.file.txt之间挑选咯?
回复 支持 反对

使用道具 举报

发表于 2008-5-21 14:27:01 | 显示全部楼层
这个有必要好好熟悉一下,很有用处。之前就是因为不熟悉这个,问过比较"弱智"的问题。
大家和平共处,毕竟大家的目的都是共同提高,呵呵,只有先富后富之分,相信jockey兄也没什么贬低之意。
回复 支持 反对

使用道具 举报

发表于 2008-5-21 19:10:44 | 显示全部楼层
Post by Jockey;1849143
我认为楼上这位兄弟在胡扯,大家觉得呢?
${a=d}的意思是:如果$a是unset,那么就赋值“d”给变量a,并且整个parameter扩展为“d”;否则扩展为$a现存值。


版主说的, 也错了, 请看, 是 ${a=b} 而非 ${a:=b}, 后者才是你说的那个意思才对, 而 ${a=b}, 其实 就是:

先将 b 赋值给 a, 所以 ${a=b} 实着是 $a, 得出 b 的值, 然后 赋值给 c, 所以 echo $c 得出 b... 就本人来看, 这样的 ${a=b}没什么实际价值阿, 莫非是 写 ${a:=b}的时候写错了
回复 支持 反对

使用道具 举报

发表于 2008-5-21 20:22:21 | 显示全部楼层
拜托啦,有没有冒号的区别手册里说得很清楚...
反驳楼上很简单:
  1. $ a=jockey
  2. $ c=${a=b}
  3. $ echo $c
  4. jockey
  5. $ echo $a
  6. jockey
复制代码
请问zyl19861126兄为什么$a是“jockey”而不是“b”?
回复 支持 反对

使用道具 举报

发表于 2008-5-21 23:00:44 | 显示全部楼层
确实, 不好意思, 习惯用 冒号了
回复 支持 反对

使用道具 举报

发表于 2008-6-2 08:19:48 | 显示全部楼层
Post by zyl19861126;1852983
版主说的, 也错了, 请看, 是 ${a=b} 而非 ${a:=b}, 后者才是你说的那个意思才对, 而 ${a=b}, 其实 就是:

先将 b 赋值给 a, 所以 ${a=b} 实着是 $a, 得出 b 的值, 然后 赋值给 c, 所以 echo $c 得出 b... 就本人来看, 这样的 ${a=b}没什么实际价值阿, 莫非是 写 ${a:=b}的时候写错了
我也说错了。
其实有没有价值,要看语句环境。如果是这样的功能,调试上就有用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表