スクリプトは2つのパラメータをロードします。

スクリプトは2つのパラメータをロードします。

たとえば、次の2つのパラメータを必要とするPerlスクリプトがあります。

./PerlScript 0001 192.168.100.200

ただし、このスクリプトの実行には時間がかかります(40x)。

./PerlScript 0003 192.168.100.202
./PerlScript 0061 192.168.100.205
./PerlScript 0061 192.168.100.206
...
...
...

PerlScriptの後にパラメータを自動的に挿入する必要がありますが、どうすればよいですか?ファイルからロードしますか、または配列を作成しますか?

答え1

パラメータリストが次のように "thelist"ファイルにあるとします。

0001 192.168.100.200
0003 192.168.100.202
0061 192.168.100.205
0061 192.168.100.206

あなたはできます:

printf "./PerlScript %s %s\n" $(cat thelist) | bash

あなたの例のように、これは順番に実行されます。

に変更

printf "./PerlScript %s %s & \n" $(cat thelist) | bash

バックグラウンドで起動するようにします(ただし、コンピュータがダウンしないように注意してください...)。

答え2

パラメータがファイルに保存されている場合は、これを行う適切な方法はを使用することですxargs

このxargsユーティリティは、標準入力から読み取った引数を使用して別のプログラムを実行します。

そして

xargs -n 2 ./PerlScript <list.in

xargs./PerlScript現在のディレクトリのファイル-n 2から取得した2つの引数()を使用して一度に実行されます。list.in

ファイルはlist.in次のようになります。

0001 192.168.100.200
0003 192.168.100.202
0061 192.168.100.205
0061 192.168.100.206

または

0001
192.168.100.200
0003
192.168.100.202
0061
192.168.100.205
0061
192.168.100.206

xargsパラメータはパイプから読み取ることもできます。

somecommand | xargs -n 2 ./PerlScript

以下は、前の例で使用したのとsomecommand同じ形式で出力を生成するいくつかのコマンドです。list.in

関連情報