在 bash 中,“for;do echo;done”在空格处分割线
在 Mac OSX 上的 bash 中,我有一个文件(测试用例),其中包含以下行
x xx xxx
xxx xx x
但是当我执行命令时,
for i in `cat r.txt`; do echo "$i"; done
结果不是
x xx xxx
xxx xx x
我想要的,而是
x
xx
xxx
xxx
xx
x
如何让 echo 给我 'x xx xxx'?
In bash on Mac OSX, I have a file (test case) that contains the lines
x xx xxx
xxx xx x
But when I execute the command
for i in `cat r.txt`; do echo "$i"; done
the result is not
x xx xxx
xxx xx x
as I want but rather
x
xx
xxx
xxx
xx
x
How do I make echo give me 'x xx xxx'?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
默认情况下,Bash for 循环会根据所有空格进行分割。您可以通过设置
IFS
变量来覆盖它:By default, a Bash for loop splits on all whitespace. You can override that by setting the
IFS
variable:按照建议设置
IFS
或使用while
:Either setting
IFS
as suggested or usewhile
: