0

Scala 内でコマンドを実行しようとしています。このコマンドは、サーブ マシン内でコマンド ラインを実行する必要がある ssh 呼び出しです。次のようになります。

sshpass -p PSW ssh USER@IP "/absolute_path/program -input /absolute_path/filename"

この文字列を Scala から出力してシェル内で直接実行すると、正しく動作しますが、

cmd !

サーバーがエラーを返す

bash: /absolute_path/program -input /absolute_path/filename: No such file or directory

誰かが私に修正方法を教えてください。ありがとうございました

更新しました

var nestedcmd = "/absolute_path/program" +
  " -input "+ server_dir +"/"+ filename

var cmd = "sshpass -p "+ server_pass +
  " ssh "+ server_user +"@"+ server_ip +
  " \""+ nestedcmd + "\""

println(cmd)  
cmd !

println は、シェル内で直接実行しようとしているクエリを生成します cmd ! 同じコマンドを実行する必要があります

開発中にこのソリューションを使用しています。本番環境ではコードがサーバーに直接実行され、ssh 呼び出しは必要ないためですが、開発のためには PC からサーバー上で「プログラム」を実行する必要があります。

解決した

引用符を削除するだけで十分でした.sshは、接続パラメーターの後に来るものをサーバーで実行するコマンドとして受け取ります

4

1 に答える 1

0

フォーマットされた文字列を使用すると、このような問題に役立ちます

var nestedcmd = """/absolute_path/program -input $server_dir/filename"""

var cmd = """sshpass -p $server_pass ssh $server_user@$server_ip \$nestedcmd"""
于 2016-02-29T17:11:21.080 に答える