在bash中IFS是内部的域分隔符,如下是一些值得注意的地方。
-
IFS的默认值为:空白(包括:空格,tab, 和新行),将其ASSII码用十六进制打印出来就是:20 09 0a;
echo -n "$IFS" | xxd -g 1 | awk -F":" '{print $2}' | awk -F" " '{print $1, $2, $3}' -
IFS对空格的空白的处理和其他字符不一样,左右两边的纯空白会被忽略,多个连续的空白被当成一个IFS处理。
-
$*中使用IFS中的第一个字符。
-
awk中的FS(域分隔符)也和IFS有类似的用法和作用。
-
IFS=$'\n' #更改IFS值为$'\n',注意,以回车做为分隔符,IFS必须为:$'\n'
参考:
1、SHELL中的IFS详解
2、shell中的特殊变量IFS
3、对Shell几个冷知识的总结(IFS,数组,替换,切割,查找)
4、shell中字分隔的妙用:变量IFS
网友评论