2012-06-12 77 views
1

我們最近在我們的Windows機器上獲得了SSH安裝程序,因此我們可以在我們的Linux機器上免除對磁盤安裝的需要。我們正在使用Pentaho,並且正在編寫一個shell腳本,它將從Linux中將SSH安裝到Windows框中並執行perl腳本。從Linux Box執行Windows Box上的遠程Perl腳本

我已經能夠以SSH的方式寫入Windows窗口並切換到保存我需要執行的Perl腳本的目錄,但我無法弄清楚如何實際執行它們。

這是我有:

#!/bin/sh 
ssh -t [email protected] "cd /path/to/script/ /path/to/perl.exe HelloWorld.pl" 

我也曾嘗試:

#!/bin/sh 
ssh -t [email protected] "cd /path/to/directory/with/perl/script" \ 
        "/path/to/perl.exe HelloWorld.pl" 

兩個嘗試導致短暫的延遲,然後「從XXXXX斷開」和Perl不運行。我可以通過一個shell手動完成所有這些步驟,但似乎無法讓它們以腳本形式工作。作爲一個說明,我已經能夠執行perl腳本的唯一方法是如果在的shell中處於perl腳本所在的目錄中。

+0

在調用perl腳本之前,你是否真的需要切換到該目錄? – Mat

+0

它似乎是這樣的,當我試圖從shell更早運行它而不更改到perl腳本所在的目錄時(比如說我剛剛執行了/path/to/perl.exe /path/to/perl/script.pl)我會得到「Perl腳本未找到」。 – user1452067

回答

1

您需要使用分號來結束您的語句,或者用一個語句執行。 嘗試以下操作:

ssh [email protected] "cd /path/to/script/; /path/to/perl.exe HelloWorld.pl" 

或:

ssh [email protected] "/path/to/perl.exe /path/to/script/HelloWorld.pl" 
+0

工作正常!非常好,非常感謝。你不知道,但你剛剛給了我最後一塊,完成了近一年的工作。 – user1452067

+0

太棒了,很高興聽到它的幫助。爲了讓人們知道這個問題已經得到了正確的回答,如果您能夠將其標記爲如此,那將會很棒。 –

+0

啊,我的錯,我對這個網站並不是100%熟悉。你現在應該被標記。 – user1452067

0

在Windows命令shell,您可以在UNIX shell中使用&&等。如果你期望第一個命令成功,

ssh -t [email protected] "cd /path/to/script/ && /path/to/perl.exe HelloWorld.pl" 

將工作。

相關問題