当设置IFS拆分换行符时,为什么需要包含退格?
我很好奇,为什么当设置IFS拆分换行符时需要退格:
IFS=$(echo -en "\n\b") 为什么我不能只用这个(这是行不通的)呢?
 IFS=$(echo -en "\n") 
我在一个Linux系统上保存Unix行结尾的文件。 我用新行将我的文件转换为hex,它绝对只使用“0a”作为换行符。
我GOOGLE了很多,虽然很多网页文档的新行,其次是退格解决scheme,没有我find解释为什么退格是必需的。
-大卫。
因为bash手册对于命令replace说:
Bash通过执行命令执行扩展,并用命令的标准输出replace命令replace,删除任何尾随的换行符。
 因此,通过添加\b您可以防止删除\n 。 
 一个更干净的方法来做到这一点可以使用$''引用,如下所示: 
 IFS=$'\n' 
我只记得最简单的方法。 用debian wheezytestingbash。
 IFS=" " 
别开玩笑:)
 这是因为使用了echo和命令replace。 
 prompt> x=$(echo -en "\n") prompt> echo ${#x} 0 prompt> x=$(echo -en "\n\b") prompt> echo ${#x} 2 
  $()带换行符和\b防止\n成为尾随的换行符,而不太可能出现在任何文本中。  IFS=$'\n'是设置IFS在换行符上分割的更好方法。 
只要按下input,不分配任何东西也可以。 虽然,看起来有人犯了一个错误,很难理解。
 IFS= #This is a line