スクリプトをZ ShellからFishに翻訳していますが、翻訳の方法がわからない部分があります。
for (( i=0; i < $COLUMNS; i++ )); do
printf $1
done
Fishで見つけることができるfor
ループの唯一のドキュメントは this kind に関するものです。魚でこれをどのように行うのですか?
Fish Shellにはそのようなfor
ループがないようですが、代わりに別の方法をとる必要があります。 (哲学は、可能な限り少数の構文構造と演算子に依存し、可能な限りコマンドを使用することです)。
これが私のやり方ですが、もっと良い方法があると思います:
for CHAR in (seq $COLUMNS)
printf $argv[1]
end
これは関数内に表示されるため、$argv[1]
。
@iconoclastからの答えが正しい答えだと思います。
私は(より良くない)代替案を与えるためにここにいます。
魚の殻を簡単に検索すると、whileループが次の形式で提供されることが示唆されます。
while true
echo "Loop forever"
end
C/C++ 101と同様に、forループは(主に)whileループに変換できることを学びました。
for (A; B; C) {
D;
}
に翻訳する
A;
while (B) {
D;
C;
}
これは、条件と「増分」が単純なものでない場合に考慮できることです。