Fish 我如何将这个“for”循环翻译成鱼壳?

Fish 我如何将这个“for”循环翻译成鱼壳?,fish,Fish,我正在将一个脚本从Z shell翻译成Fish,我有一个部分我不知道如何翻译: for (( i=0; i < $COLUMNS; i++ )); do printf $1 done ((i=0;i

我正在将一个脚本从Z shell翻译成Fish,我有一个部分我不知道如何翻译:

  for (( i=0; i < $COLUMNS; i++ )); do
    printf $1
  done
((i=0;i<$COLUMNS;i++)的
for;做
打印F$1
完成

我在Fish中找到的
for
循环的唯一文档是for。在Fish中如何执行此操作?

鱼壳似乎没有那种
for
循环,而是要求您采取不同的方法。(其理念显然是尽可能少地依赖语法结构和运算符,并尽可能多地使用命令。)

我是这样做的,尽管我认为有更好的方法:

for CHAR in (seq $COLUMNS)
  printf $argv[1]
end

这出现在函数中,因此,
$argv[1]

我相信@iconolast的答案在这里是正确的

我来这里只是想给出一个(不是更好的)选择

在fish shell中的简短搜索似乎表明它以以下形式提供了一个while循环:

while true
        echo "Loop forever"
end
正如在C/C++101中一样,我们了解到for循环可以(大部分)通过以下方式转换为while循环:

for (A; B; C) {
  D;
}
转化为

A;
while (B) {
  D;
  C;
}

这是你可以考虑的条件和“增量”不是一个直接的。

这是正确的,除了变量应该匹配:<代码>我在(SEQ $列);printf$i;end@crossible\u fish:实际上,
$1
是传递给该循环所在函数的其他内容。。。我当时没有意识到这应该是
$argv[1]
。实际上,我并不关心$CHAR或$I,我只是使用
seq
在屏幕上打印
$argv[1]
中的字符,每列打印一次。我会更新答案。。。