为什么我看到的每个例子都有while IFS= read line
并不是while IFS=; read line
?
我以为name=value command
可能会设置一个局部变量,但是sentence="hello" echo $sentence
不起作用,同时sentence="hello"; echo $sentence
does.
The:
name=value command
语法设置name
to value
为了command
。在你的例子中:
$ sentence="hello" echo $sentence
$sentence 由调用 shell 展开,但它看不到设置。如果你这样做
$ sentence="hello" sh -c 'echo $sentence'
(注意单引号有$
由被调用的 shell 扩展)它将回显hello
。如果你尝试
$ sentence="hello"; sh -c 'echo $sentence'
它不会回显任何内容,因为sentence
在当前 shell 中设置,但是not在被调用的一个中,因为它没有导出。所以
IFS=; read line
will not工作,因为read
will not看到IFS
环境。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)