我试图在 Scala 中运行一个命令,这个命令是一个 ssh 调用,需要在服务器机器内执行一个 cmd 行,它看起来像
sshpass -p PSW ssh USER@IP "/absolute_path/program -input /absolute_path/filename"
如果我从 Scala 打印这个字符串并直接在 shell 中运行它,它可以正常工作,但是使用
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 产生我试图直接在 shell 中运行的查询, cmd !应该运行相同的命令
我在开发过程中使用此解决方案,因为在生产中代码将直接运行到服务器中,我不需要 ssh 调用,但对于开发,我需要从我的电脑上运行服务器上的“程序”
解决了
删除引号就足够了,ssh 将连接参数之后的内容作为在服务器上运行的命令