-1
我有一個shell腳本,我在其中執行來自不同主機的ls命令,但是我無法實現此目的。這裏是我下面的colde:來自Shell腳本的SSH
#!/bin/sh
nodes="hostname1 hostname2"
cmd="ls -ltrha"
for node in ${nodes}; do
ssh ${node} '`$cmd`'
done
這段代碼的問題是,它可以完美的ssh主機名1,但它甚至不執行ls命令,甚至SSH主機名2。
任何想法我在做什麼錯在這裏?
****新編輯**** 我也嘗試了下面的一個套,但只執行了LS沒有SSH
ssh hostname1 'ls -ltrha'
請參閱:[在bash中單引號和雙引號之間的區別](http://stackoverflow.com/q/6697753/3776858) – Cyrus
感謝您的評論賽勒斯,但我不認爲問題只是用引號。我只是嘗試運行一個班輪,而只是執行$ cmd而不執行ssh表示。請看看我的文章 –
,請更新您的Q以指示您如何處理來自遠程主機的'password'提示。祝你好運。 – shellter