如果下面的例子中,它将 IFS
环境变量设置为换行符..。
IFS=$'\n'
我知道什么是 IFS
环境变量,什么是 \n
字符(换行符) ,但为什么不使用以下形式:
IFS="\n"
(不工作) ?
例如,如果我想循环遍历文件的每一行并使用 For 循环,我可以这样做:
for line in (< /path/to/file); do
echo "Line: $line"
done
但是,除非将 IFS
设置为换行符,否则这种方法不会正确工作。为了让它起作用,我必须这样做:
OLDIFS=$IFS
IFS=$'\n'
for line in (< /path/to/file); do
echo "Line: $line"
done
IFS=$OLDIFS
注: 我不需要别的方法来做同样的事情,我已经知道很多其他的方法了... ... 我只是对那个 $'\n'
很好奇,想知道是否有人可以给我一个解释。