2012-09-30 75 views
0

我試圖登錄到一個文件(在遠程服務器中可以說/home/test/log.txt)存儲在$ var中的內容。林與用ssh發送一個變量到遠程服務器

ssh [email protected]$192.168.1.35 "echo "var" >> /home/test/log.txt" 

Ÿ努力還試圖

ssh [email protected]$192.168.1.35 "echo "$var" >> log.txt" 

但都沒有工作

任何幫助嗎?

+0

'回聲「$ VAR」 | ssh [email protected]$192.168.1.35「cat >> /home/test/log.txt」' –

+0

你將不得不更清楚你想做什麼。 – geocar

+0

Im試着在log.txt中寫入$ var – coolerking

回答

5

您使用雙引號,所以變量擴展將在本地發生。您應該使用單引號,以便該命令不被更改發送。

以同樣的方式作爲echo '$var'$varecho "$var"顯示的內容,這樣的服務器看到$var,而不是本地$var的內容。

所以:

ssh [email protected]$192.168.1.35 'echo $var >> /home/test/log.txt'

將在遠程計算機上的文件,在它與遠程$var的價值。

如果你

ssh [email protected]$192.168.1.35 'echo $var' >> /home/test/log.txt

你獲取本地計算機與它遠程$var的價值上的文件。

如果你

ssh [email protected]$192.168.1.35 "echo $var >> /home/test/log.txt"

它存儲你的遠程系統上的文件在本地$var的價值。

(另外,如果只是涉及到遠程系統,您應該使用shell腳本,或者也許如果你想讓它自動發生和cron)

+0

你確定我必須以「結尾」開頭嗎? – coolerking

+0

不,這是一個錯字,對不起。 – marinus

0

你嘗試:

ssh [email protected]$192.168.1.35 'echo "$var" >> /home/test/log.txt' 

這應該工作。假設您的計算機上設置了var,而不是遠程設置。

+0

的內容這將使用來自遠程主機的'$ var'。 'echo「$ var」>>/home/test/log.txt「將被執行。 –

相關問題