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を変更していないことを前提としています。 変数)。