Fish 我如何将这个“for”循环翻译成鱼壳?
我正在将一个脚本从Z shell翻译成Fish,我有一个部分我不知道如何翻译:Fish 我如何将这个“for”循环翻译成鱼壳?,fish,Fish,我正在将一个脚本从Z shell翻译成Fish,我有一个部分我不知道如何翻译: for (( i=0; i < $COLUMNS; i++ )); do printf $1 done ((i=0;i
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]
中的字符,每列打印一次。我会更新答案。。。