使用shell自动标记未加引号的变量:
$ string="john is 17 years old"
$ for word in $string; do echo "$word"; done
john
is
17
years
old
如果要更改分隔符,可以设置$IFS
变量,它代表内部字段分隔符.默认值$IFS
为" \t\n"
(空格、制表符、换行符).
$ string="john_is_17_years_old"
$ (IFS='_'; for word in $string; do echo "$word"; done)
john
is
17
years
old
(请注意,在第二个示例中,我在第二行的周围添加了括号.这会创建一个子shell,以便对$IFS
的更改不会持续.您通常不希望永久更改$IFS
,因为它会对毫无戒备的shell命令造成严重 destruct .)