2017-07-30 9 views
-1

私はそこでは異なるホストからlsコマンドを実行しているシェルスクリプトを持っていますが、これを達成するのに問題があります。シェルスクリプトのSSH

#!/bin/sh  
nodes="hostname1 hostname2" 
cmd="ls -ltrha" 
for node in ${nodes}; do 
    ssh ${node} '`$cmd`' 
done 

このコードの問題は、それが完全にhostname1 sshをすることができますが、それもlsコマンド、あるいはSSH hostname2には実行されないということである。ここでは以下の私のcoldeです。

私がここで間違っているのは何ですか?

****新規編集**** また、私は1つのライナーの下にしようとしたが、それが唯一のssh

 ssh hostname1 'ls -ltrha' 
+0

参照:[bashの一重引用符と二重引用符の違い](0120-385-505) – Cyrus

+0

あなたのご意見ありがとうございますCyrusしかし私は問題が単なる引用符ではないと思います。私はちょうど1つのライナーを走らせようとしましたが、代わりにsshの推奨を実行せずに$ cmdを実行しました。私の投稿を見てください –

+0

あなたのQを更新して、リモートホストからの 'password'プロンプトの扱い方を示してください。がんばろう。 – shellter

答えて

-1

なしのlsを実行し、あなたはそれを

#!bin/sh 
nodes="hostname1 hostname2" 
for node in ${nodes}; do 
ssh ${node} 
`ls -ltrha` 
done 
0
#!/bin/sh  
nodes="hostname1 hostname2" 
cmd="ls -ltrha" 
for node in $nodes; do 
    ssh "$node" "$cmd" 
done 
を行うことができます
関連する問題