shell脚本中将 IFS (Internal Field Separator 内部字段分隔符)替换为换行符

将 IFS 中的空白符(换行、制表符、空格)修改为仅包含换行

IFS 是shell中的内部变量,在使用

for var in var_list;do
use $var do something
done

这样的语句时,可以用 IFS 的值来分隔其中内容。有时候,var_list 中的内容有空格或制表符,但应当按行分割。这时,如果不修改IFS的值会影响后续操作。
我使用 IFS=`echo -e "\n"` 没法修改,后来在看网上的资料时发现了一种非常巧妙的方法

IFS='
'

这样就是一个完整的换行了。然后我受此启发:上面的换行,实际上如果用代码表示是 \n\r 我试了一下,果然就可以用了。

所以最后,可以让IFS仅分割换行的方法是:

IFS='
'

IFS=`echo -e "\n\r"`

posted @ 2020-08-22 20:54  惠灰灰  阅读(1017)  评论(0编辑  收藏  举报