0

同じコマンドを送信する PSSH を使用して bash スクリプトを作成しようとしていますが、ホストによって引数が異なります。ホスト名と引数は、別のファイル「list.txt」から取得されます。

「list.txt」ファイルの例は次のようになります。

10.0.0.1;'hello';'world'
10.0.0.2;'goodbye';'everyone'
10.0.0.3;'thank';'you!'

私が現在持っているものの例(残念ながら機能していません)を以下に示します。

#!/bin/bash

# grab the list items and make them into a variable to be able to parse
actionList=$(</root/scripts/list.txt)

# parse out host name for pssh
host_name="$( cut -d ';' -sf 1 <<< "$actionList" )";

# parse out the first argument 
argument1="$( cut -d ';' -sf 2 <<< "$actionList" )";

# parse out the second argument
argument2="$( cut -d ';' -sf 3 <<< "$actionList" )";

# pssh command that creates a new file on each server with their respective argument1 and argument2 
pssh -i -AH $host_name -t 300 -O StrictHostKeyChecking=no "$(argument1) ' and ' $(argument2) >> arg1_and_arg2.txt" 

$actionList 変数を切り取っても、私が望むものは得られないことは確かですが、私が本当にこだわっているのは、解析した後、「list.txt」内のすべての項目に対して pssh コマンドが正しく実行されるかどうかです。 $actionList からの正しい文字列。

PSSHでファイルから引数を変更して、同じコマンドを作成する方法はありますか? これを行うためのより良いプログラムはありますか?もしそうなら、どのように?どんな助けでも大歓迎です。

ありがとう!

PS この投稿をフォーマットしたり、間違ったことをしたりした場合は、お詫び申し上げます。通常、StackOverflow は最後の手段なので、あまり使用しません。繰り返しますが、助けやアドバイスをありがとう!

4

1 に答える 1