2017-04-04 16 views
0

私はperlスクリプトで次のコマンドを使用して、別のサーバの特定のフォルダにある入力パラメータを持つシェルスクリプトを実行しています。入力パラメータでシェルスクリプトを実行するsshpassコマンド

system('sshpass -p password ssh [email protected] "cd /folder1/fol2; ./test.sh $param1 $param2;"'); 

しかし、入力パラメータは考慮されていないようです。誰か助けてもらえますか?手で引用

+3

変数は、単一引用符内補間しません。 – stevieb

+0

ありがとうございました!私は最終的にsshを実行するために別のシェルスクリプトを使用し、システムコマンドで私のperlから同じものを呼び、それがうまくいった! – GSG

答えて

2

はトリッキーで、perlがあなたのためにそれをやらせる:

use Net::OpenSSH; 
my $ssh = Net::OpenSSH->new('[email protected]', password => $password); 
$ssh->system('cd', '/forlder1/fol2', \\'&&', './test.sh', $param1, $param2) 
    or $ssh->die_on_error("Command failed"); 
+0

私はパッケージをインストールする特権を持っていません。しかし、最終的には別のシェルスクリプトを呼び出すことで同じことを達成することができました。 – GSG

関連する問題