带新线的猫

mur*_*uga 3 bash

我的输入文件内容是

欢迎

欢迎1

欢迎2

我的脚本是

for groupline in `cat file`
do
        echo $groupline;
done
Run Code Online (Sandbox Code Playgroud)

我得到了以下输出。

欢迎
欢迎1
欢迎2 

为什么不打印空行。我要原因

gho*_*g74 5

你需要设置IFS为换行符\n

IFS=$"\n"
for groupline in $(cat file)
do
        echo "$groupline";
done
Run Code Online (Sandbox Code Playgroud)

或者加双引号。看这里解释

for groupline in "$(cat file)"
do
        echo "$groupline";
done
Run Code Online (Sandbox Code Playgroud)

在不干预 IFS 的情况下,“正确”的方法是使用 while 读取循环

while read -r line
do
 echo "$line"
done <"file"
Run Code Online (Sandbox Code Playgroud)