Korn Shell 程序或 POSIX Shell 中的字段分割
在执行命令替换后,Korn Shell 程序扫描替换的结果,以查找在 IFS(内部字段分隔符)变量中找到的那些字段分隔符字符。 在找到这样字符的地方,Shell 将替换分割为不同的自变量。
Shell 保留显式 null 自变量(
"" 或 '')并除去隐式 null 自变量(由不具有值的参数产生的自变量)。- 如果 IFS 的值是空格、制表符或换行符,或如果未设置,那么位于输入的开始或结束处的任何空格、制表符或换行符序列都会被忽略,并且输入中那些字符的任何序列都将对字段进行定界。 例如,以下输入产生两个字段,school
和 days:
<newline><space><tab>school<tab><tab>days<space> - 否则,如果 IFS 的值不为空,那么在序列中应用以下规则。 IFS 空格用于表示 IFS 值中的任何空格序列(零个或多个实例)(例如,如果 IFS 包含 space/comma/tab,那么任何空格或制表符的序列都视为 IFS 空格)。
- IFS 空白在输入的开始和结束处忽略。
- 输入中每个非 IFS 空格的 IFS 字符与任何相邻的 IFS 空格,定界一个字段。
- 非零长度 IFS 空格定界一个字段。