3

bashLinuxで、プログラムを複数回(たとえば、3回)実行し、テキストファイルで提供される値のリストに基づいてスイッチ値を指定するスクリプトを作成したいと思います。

たとえば、浮動小数点数を入力として受け取るprogramnameスイッチを持つプログラムがあるとします。-switchしたがって、プログラムを1回実行すると、次のようになります。

programname -switch 0.05

ここで、0.05はスイッチに渡される特定の値-switchです。

-switch次に、の個別の呼び出しで連続して渡したい値のリストを含む、ある種のテキストファイルを読みたいと思いますprogramname。私のテキストファイルtest.txtには次のデータが含まれている可能性があります。

0.05
3.19
100.75

bashテキストファイルを読み取り、これらの呼び出しを効果的に連続して行うスクリプトを作成したいと思います。

programname -switch 0.05
programname -switch 3.19
programname -switch 100.75

私はこのようなことを考えています:

#!/bin/bash
for i in {1..3}
do
programname -switch $x
done

しかし、代わりに何を入力すればよい$xですか?つまり、ループの実行test.txt中に、その内容を1つずつ読み込んで提供する方法がわかりません。何かアドバイスはありますか?ありがとうございました!-switchfor

4

2 に答える 2

4

外部ユーティリティを使用する必要はありません。カウンターの増分readは、示されているように一緒に実行することも、カウンターの増分をループ内の任意の場所に移動することもできます。

while ((i++)); read -r value
do
    programname -switch "$value" -other "$i"
done < test.txt
于 2012-06-30T20:27:29.930 に答える
1

values.txt:

0.05
3.19
100.75

script.sh:

#!/bin/bash

counter=1
for value in $(cat values.txt)
do
    programname -switch $value -counter $counter
    counter=$(expr $counter + 1)
done
于 2012-06-30T19:58:45.273 に答える