fish shell 中的 for 循环最多只执行 3 次

for loop in fish shell only goes a maximum of 3 times

我正在使用 fish shell 来做一个简单的 for 循环。由于某种原因,它只迭代 3 次而不是 100 次(或我放入其中的任何内容)。我做错了什么?

error ➜  for i in seq 1 100
             echo hi
         end
hi
hi
hi
error ➜ 

请注意,运行 seq 1 100 将按预期输出 1 到 100 之间的数字。

这是我的鱼版本:

error ➜  fish --version
fish, version 3.0.2

那是因为您没有启动 seq 命令。

你正在做这个

for i in "seq" "1" "100"

当您想这样做时

for i in (seq 1 100)
# .......^.........^  command substitution

嗯嗯所以我的问题的答案很简单。

我应该 (seq 1 100) 而不是 seq 1 100

需要将其括在方括号中才能对 seq 命令进行评估。相反,我刚刚给 fish 的是一个包含三个字符串 ("seq" "1" "100") 的数组,恰好看起来像一个命令 lol。

所以是的,我不是一个很聪明的人。