IFS in .ksh直言不讳

mar*_*611 1 unix linux vi shell ksh

有人可以解释为什么我的IFS语句正在替换输出文件中的字符吗?为了解决这个问题,我需要改变什么?我想逐行读取一个输入文件(逐个记录)和完全忽略的IFS,但我不知道该放什么,以便我把它放进去.

#!/bin/bash
SAVEIFS=$IFS
IFS='\n'
record="The rain in Spain"
record2="c:\user\user\document.txt"
echo $record
echo $record
Run Code Online (Sandbox Code Playgroud)

我的输出是用空格替换所有我的小写'n'字符,我的'\'字符被删除,而不是(我认为会发生)用新行分隔:

The rai  i  Spai
c: user user docume t.txt
Run Code Online (Sandbox Code Playgroud)

提前致谢

l0b*_*0b0 5

这不是文字换行符 - 你的字段分隔符实际上是字符\(反斜杠)和n.你可以用这个:

IFS='
'
Run Code Online (Sandbox Code Playgroud)

或者这个:

IFS=$'\n'
Run Code Online (Sandbox Code Playgroud)