2

リモートホストに ./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:./test no such file or directory と表示されます。

$file を単一の \ と \ でエスケープしてみました。それでもうまくいきません。これを解決する方法を考えてみてください。

ありがとう。

4

1 に答える 1

3

./ に基づくパスではなく、絶対パスを使用してみましたか? それはおそらくこの問題を解決し、cwd(おそらく履歴に基づくbash)の設定に依存して毎回同じように設定するよりも、一般的に(特にルートとして接続する場合)安全です。

于 2010-06-29T23:18:08.173 に答える