すべてのリモート サーバー名をシェル スクリプトの引数として渡し、スクリプトで指定されたファイル/ディレクトリをすべてのリモート サーバーにコピーしたいと考えています。以下は私のコードです。
#!/bin/bash
/usr/bin/expect <<EOD
#connect via scp
usr=Joe
pwd=Password
file_location=/home/file1.txt
for a in $@
do
spawn scp -r $file_location "$usr@$a:$file_location"
expect -nocase "password: "
send "$pwd\r"
expect eof
EOD
ユーザー名とパスワードは、すべてのリモート サーバーで同じです。そのため、当面はそれらをハードコーディングしていますが、スクリプトの実行中に問題が発生します..
>./scp1.sh server1 server2
invalid command name "usr=Joe"
while executing
"usr=Joe"
どんな助けでも大歓迎です。ありがとう!