我在远程主机中有一个脚本,我运行的是./test / a / b / c / f,它在机器上运行得很好。
现在我在主机上,我运行与ssh root @dst“./test / a / b / c / f”相同的脚本,这也运行良好。
但是从我的perl脚本中我使用反引号执行它
$file = "/a/b/c/f";
`ssh root\@dst "./test $file"`;
或
system("ssh root\@dst \"./test $file\" ");
它说bash:./测试没有这样的文件或目录。
我尝试用单\和\来转义$ file。即便这样也行不通。不知道如何解决这个问题,
感谢。
答案 0 :(得分:3)
您是否尝试使用绝对路径而不是基于./的路径?它可能会解决这个问题,并且它通常更安全(特别是在以root身份连接时),而不是依赖于cwd(可能是基于历史记录的bash)的设置,每次都以相同的方式设置它。