【发布时间】:2011-05-06 21:46:46
【问题描述】:
如果以下示例将IFS 环境变量设置为换行符...
IFS=$'\n'
- 美元符号是什么意思 确实?
- 它在这个特定的 案例?
- 我可以在哪里阅读有关此特定用法的更多信息(Google 不允许在搜索中使用特殊字符,我不知道要查找什么其他内容)?
我知道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' 感到好奇,想知道是否有人可以给我一个解释。
【问题讨论】:
标签: bash shell variables environment-variables ifs