与 IFS 分裂
为了更清楚,让我们创建一个名为 showarg
的脚本:
#!/usr/bin/env bash
printf "%d args:" $#
printf " <%s>" "$@"
echo
现在让我们看看差异:
$ var="This is an example"
$ showarg $var
4 args: <This> <is> <an> <example>
$var
分为 4 个 args。IFS
是空白字符,因此在空格中发生了分词
$ var="This/is/an/example"
$ showarg $var
1 args: <This/is/an/example>
在上面的单词中没有发生拆分,因为找不到
IFS
字符。
现在让我们设置 IFS=/
$ IFS=/
$ var="This/is/an/example"
$ showarg $var
4 args: <This> <is> <an> <example>
$var
分为 4 个参数而不是单个参数。