ファイルのリモート実行が機能しない

ファイルのリモート実行が機能しない

/tmp/cmdSSHを使用してリモートコンピュータ(slc05bkt)からローカルファイル(ここ)を実行しようとしています。以下は、スクリプトファイルで試したコマンドです。

cmd="ssh -v ssuthari@slc05bkt \"bash -l -s\" < /tmp/cmd"
$cmd

次の例外が発生します。

ksh: line 1: /tmp/cmd: cannot open [No such file or directory]

このローカルファイルのコピーを同じ場所にあるリモートシステムに追加した後でも、エラーが発生します。

ksh: line 1: bash -l -s: not found

皮肉なことに、コマンドラインから直接コマンドを実行できますが、スクリプトでは上記の行を実行できません。誰でもこの問題を解決するのに役立ちますか?

答え1

$cmd変数は評価されずに拡張され、文字列としてシェルに渡されるため、エラーが発生します。あなたの場合は試してみてくださいeval "$cmd"

とにかく悪い習慣なので、代わりに$(ssh the_rest_of_your_command_line)使用することをお勧めします。eval "$cmd"eval

関連情報