2016-06-23 20 views
0

標準入力をサーバ上のsshにリダイレクトしようとしていますが、スクリプトにはパラメータが含まれています。パラメータ付きの標準入力リダイレクト

私はMakefileの

./docker-machine ssh machine < scripts/provision-docker-images.sh "param1" "param2" 

内にこれをやっている私は

< $(scripts/provision-docker-images.sh "param1" "param2") 
<(scripts/provision-docker-images.sh "param1" "param2") 

任意のアイデアのような多くのオプションを試してみましたか?

+0

見た目[this](http://stackoverflow.com/questions/8528716/bash-how-to-pass-arguments-to-a-script-that-is-read-via-redirected-standard-に)? – s7amuser

+0

動作しますか? './docker-machine ssh machine <<(scripts/provision-docker-images.sh" param1 "" param2 ")' –

+0

これは動作しません。 –

答えて

1

あるコマンドの標準出力を別のコマンドの標準入力に接続するメカニズムは、パイプです。シェルの演算子は|です。私は、スクリプトがローカルホスト上で実行することになっている

  • ことを正しく理解していれば
  • docker-machine sshリモートシェルあなたが希望何をしたい、その後

へのSSH接続を介して、独自の標準入力を転送しますbe

scripts/provision-docker-images.sh "param1" "param2" \ 
    | ./docker-machine ssh machine 

(行分割オプション)です。対照的に

  • リダイレクトオペレータ<ファイルから来るようにコマンドの標準入力をリダイレクトするためのものです。
  • コマンド置換演算子$(...)は、コマンドの出力をの部分をの別のコマンド(パラメータ拡張と同様)に拡張するためのものです。
  • プロセス置換演算子<(...)は、コマンドの出力を読み取ることができるファイル名をに作成するためのものです(つまり、FIFOの読み取り側を指定します)。
+0

こんにちは。スクリプトはVM内で実行する必要があります。 友達が私にこの解決策を教えてくれました。 './docker-マシンsshマシンparam1 =" param1 "param2 =" param2 "'sh -s'

関連する問題