web-dev-qa-db-ja.com

サブシェルの出力をプロセスにリダイレクトする

SSHでスクリプトを実行し、そのスクリプトにいくつかのパラメーターを渡そうとしています。私はうまくいかなかった以下を試しました-値は渡されません:

$ LC_FOO=x ssh -o SendEnv=LC_FOO $Host < myLongScript.sh

ターゲットホストは非常に厳密で定期的に再作成されることがあるので、それらのSSH設定を変更しても無駄です。

だから私はトリックに頼って、スクリプト自体の中で値を渡そうとしています。つまり、変数をスクリプトに追加したいと思います。

私はこれらの他のアプローチも試しました:

# doesn't work - 'ambiguous redirect'
$ ssh ... < $(...)

# doesn't work - 'LC_FOO=x: command not found'
$ $(echo "FOO=x"; cat myLongScript.sh) | ssh ...

sshの入力の前に行を追加するにはどうすればよいですか?

3
Ondra Žižka

ssh ... < <(...)などの プロセス置換 が必要です。 ssh ... < $(my_command)コマンド置換 であり、リダイレクトターゲットとしてmy_commandの結果から各 Word でリダイレクトを作成します。

2
l0b0