我很好奇为什么在将IFS设置为在换行符上分割时为什么需要退格键:
IFS=$(echo -en "\n\b")
为什么我不能只使用它(不起作用)呢?
IFS=$(echo -en "\n")
我在使用Unix行尾保存文件的Linux系统上。我已经用换行符将文件转换为十六进制,并且肯定只使用“ 0a”作为换行符。
我已经在Google上搜索了很多,尽管有很多页面记录了换行符以及后退解决方案,但是我发现却没有一个解释为什么需要退格。
-大卫。
因为如bash手册所述,关于命令替换:
Bash通过执行命令并将命令替换替换为命令的标准输出来执行扩展,并删除所有尾随的换行符。
因此,通过添加\b您可以防止删除\n。
\b
\n
一种更干净的方法是使用$''引用,如下所示:
$''
IFS=$'\n'