答案1
相同的文档,https://fishshell.com/docs/current/language.html#loops-and-blocks:
for i in (seq 1 5)
echo $i
end
替换seq 1 5
为您想要获取的数字,例如seq 14 1000
获取从 14 到 1000 的数字;如果想从1开始,可以省略起始点,即写成seq 1000
。
顺便说一句,这就像非常经典的 UNIX shell;感觉不是很现代。 (在bash
and zsh
you can do中for i in {1..1000}
,我认为这更容易、更清晰地阅读,更不用说它节省了实际运行外部程序seq
并缓冲其输出的时间。)
另一种不依赖 coreutils 的方法(如果你不是 GNU 程序也不是 POSIX shell,那么依赖 coreutils 是一件令人悲伤的事情),将使用循环while
和纯粹的 Fish 内置函数:
set counter 0
# -lt: less than
while test $counter -lt 1000;
set counter (math $counter + 1)
echo $counter
end
答案2
事实证明,gnu-coreutils 中有一个程序seq
可以打印出一系列数字。
因此,要运行命令 n 次,可以使用以下循环。
for i in (seq n);
echo $i
end