GNU/Linux >> Linux の 問題 >  >> Linux

さまざまなパラメータ(ループ)でプログラムを実行しますか?

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


Linux
  1. Bash -cと位置パラメータ?

  2. ファイル名のForループ?

  3. -static でコンパイルされたバイナリかどうかを確認する

  1. Bashでプログラミングする方法:構文とツール

  2. 反復回数を変更できるForループを作成するにはどうすればよいですか?

  3. 4 つのサンプル シェル スクリプトで説明されている Bash の特別なパラメーター

  1. Linux でスレッドを作成する方法 (C サンプル プログラムを使用)

  2. Softaculous でインストールされたプログラムをアップグレードする方法

  3. コマンドライン パラメータがある場合、GDB を使用してプログラムのコア ダンプ ファイルを分析するにはどうすればよいですか?