小编Nuc*_*ear的帖子

为 for 循环设置 IFS 时的奇怪 bash 行为

我有一个值列表,用 ':' 分隔,我想一一处理它们。

当分隔符为空格时,没有问题:

nuclear@korhal:~$ for a in 720 500 560 130; do echo $a; done
720
500
560
130
Run Code Online (Sandbox Code Playgroud)

但是在将 IFS(内部字段分隔符)设置为 : 后,奇怪的事情开始发生:

nuclear@korhal:~$ IFS=":" for a in 720:500:560:130; do echo $a; done;
bash: syntax error near unexpected token `do'
Run Code Online (Sandbox Code Playgroud)

如果我跳过所有分号,则在设置 IFS 时:

nuclear@korhal:~$ IFS=":" for a in 720:500:560:130 do echo $a done;
Command 'for' not found, did you mean:
  command 'vor' from deb vor (0.5.8-1)
  command 'fop' from deb fop (1:2.5-1)
  command 'tor' from deb tor (0.4.4.5-1)
  command …
Run Code Online (Sandbox Code Playgroud)

bash for

2
推荐指数
1
解决办法
190
查看次数

标签 统计

bash ×1

for ×1