prog
というプログラムがあります 、ターミナルから呼び出すと整数の引数を取ります。例:
./prog 10
prog
を実行したい 値の範囲で、例えば10, 20, 30, ...
。使用する以外に、それを行うためのきちんとした方法はありますか:
./prog 10 ; ./prog 20 ; ./prog 30 ; ....
承認された回答:
単純なforループは、Bash、Zsh、またはKsh93で使用できます。
以下は、Bashバージョン4(2009)、zsh 4.3.10(2010)、およびksh93r(2006)以降でのみ機能します(ただし、{x..y}
zsh
に由来する構文 (2.6-beta4
で 1995年))。
#!/bin/bash
# since Bash v4
for i in {10..100..10}
do
$path_of_prog/prog $i
done
{$start..$end..$step}
一部は$i
と言っています 開始時は$start
と同じです および$i
$end
に移動します 。$step
$i
の金額です ステップごとに増加します。
したがって、値は10 20 30 ... 100
になります。 $i
の場合 。
ですべてを1行で書くこともできます
for i in {10..100..10}; do ./prog $i; done
古いBashとGNUseq
をお持ちの場合 利用可能な場合は、次の行を使用してください
#!/bin/bash
#only for pre Bash v4
for i in $(seq 10 10 100)
do
$path_of_prog/prog $i
done
またはワンライナーとして
for i in $(seq 10 10 100);do ./prog $i; done
(上記は、$IFS
を変更していないことを前提としています。 変数)。