フィッシュシェルでコマンドをn回実行するには?

フィッシュシェルでコマンドをn回実行するには?

これ魚文書forループを実行するには、次の方法があります。

for i in 1 2 3 4 5;
    echo $i
end

コマンドを1000回実行したいとしましょう。どうすればいいですか?

ベストアンサー1

同じ文書、https://fishshell.com/docs/current/言語.html#loops-and-blocks:

for i in (seq 1 5)
    echo $i
end

seq 1 5たとえば、14から1000までの数字を取得したい数字に置き換えますseq 14 1000。 1から始めるには、始点を省略できますseq 1000

ちなみに、これは非常に古典的なUNIXシェルのようなもので、それほど現代的な感じではありません。 (bashそしてzshあなたはfor i in {1..1000}これを行うことができます。これは読みやすく、きれいだと思います。seq実際には外部プログラムを実行して出力をバッファリングするのに時間がかかりません。)

coreutilsに依存しないもう1つのアプローチ(GNUプログラムやPOSIXシェルではない場合は悲しいことです)は、ループと純粋なフィッシュの組み込みwhile機能を使用することです。

set counter 0
# -lt: less than
while test $counter -lt 1000;
    set counter (math $counter + 1)
    echo $counter
end

おすすめ記事