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は、接続パラメーターの後に来るものをサーバーで実行するコマンドとして受け取ります