在Mac OSX上的bash中,我有一个包含行的文件(测试用例)
x xx xxx
xxx xx x
Run Code Online (Sandbox Code Playgroud)
但是当我执行命令时
for i in `cat r.txt`; do echo "$i"; done
Run Code Online (Sandbox Code Playgroud)
结果不是
x xx xxx
xxx xx x
Run Code Online (Sandbox Code Playgroud)
正如我想要的那样
x
xx
xxx
xxx
xx
x
Run Code Online (Sandbox Code Playgroud)
我怎么做回声给我'x xx xxx'?
Oli*_*rth 30
默认情况下,Bash for循环在所有空格上分割.您可以通过设置IFS变量来覆盖它:
IFS=$'\n'
for i in `cat r.txt`; do echo "$i"; done
unset IFS
Run Code Online (Sandbox Code Playgroud)