我试图在 while 循环迭代期间保留输入文件中的所有空格。这是我正在使用的文件(file1):
a@ubuntu:~$ cat file1
01: a b c
02: d e f
如您所见,我在每行的字符之间放置了制表符。我想在输出上保留这些标签。我曾尝试在 while 循环中清除 IFS,如下所示:
while IFS= read -r p; do
echo $p
done < <(cat file1)
即使在我清除 IFS 之后,结果也出于某种原因摆脱了选项卡(我也尝试过 echo -e):
a@ubuntu:~$ sudo bash a.sh
01: a b c
02: d e f
但是,当我在 while 循环之外清除 IFS 时,它可以完美运行:
IFS=''
while read -r p; do
echo $p
done < <(cat file1)
这是输出;选项卡被保留:
a@ubuntu:~$ sudo bash a.sh
01: a b c
02: d e f
为什么当我清除与 while 循环在同一行中的 IFS 时,选项卡无法保留?