2014-01-08 56 views
0

我想在遠程主機上運行shell腳本,我也想傳遞一些參數。我的本地主機的shell腳本低於如何在遠程ssh命令中傳遞參數

pwd 
echo $0 
echo $1 
echo $2 
echo thanku everyone!! 

要運行此腳本現在用的命令

ssh [email protected] 'ksh' < ./code 

我想傳遞的參數與此命令。請在此澄清我..

在此先感謝。

+0

是否可以將腳本存儲在遠程服務器上? – Tobias

+0

我不存儲。只需從本地運行shell腳本到遠程主機。 – xxxxxxxxxx

回答

1

您無法傳遞參數,因爲您開始ksh並使用./code作爲標準輸入。

但是你可以設置一個環境變量,然後用它作爲命令行,注意!

[email protected]:~$ cat code 
function run() { 
    echo $1; 
    echo $2; 
} 

run $COMMAND_LINE 

[email protected]:~$ ssh localhost 'COMMAND_LINE="hello world" ksh' < ./code 
hello 
world 
+0

沒有它沒有工作。 ssh user @ host'COMMAND_LINE =「hello world」ksh'<./thur1 我喜歡這個,我的代碼是 function run(){ echo $ 1; echo $ 2; } run $ COMMAND_LINE 在主機中運行此代碼時。它顯示了以下錯誤 語法錯誤:「(」意外 請澄清我在這..感謝.. – xxxxxxxxxx

+0

- >請說明我上述評論 – xxxxxxxxxx

+0

那是因爲我的'的run()'是一個bash。函數,而您需要[ksh函數](http://www.well.ox.ac.uk/~johnb/comp/unix/ksh.html#functions)只需刪除括號即可。 –