2017-06-09 2 views
3

私はBASH機能executeを持っています。この機能は、SSH経由でマシンに接続し、ここでdoc redirect経由で提供される一連のコマンドを実行します。それは素晴らしい作品です。リダイレクトにいくつかのコマンドを注入する方法はありますか?前に常にprepare_somethingを実行したいと思います。 do_somethingここにドキュメントをリダイレクトする行を「挿入する」方法は?

function execute() { 
    ssh [email protected] /bin/bash 
} 

execute << EOF 
    do_something 
EOF 
+2

もっと具体的な例が参考になります。あなたは文字列を連結するか、それらを組み合わせるだけですか? – dawg

+0

どのように動作させるかの例を挙げてください。特に、コマンドに関数を指定したい場合は – RaphaMex

答えて

1

あなたは、機能の標準入力を消費catでエコーを結合するためにサブシェルを使用することができます。次に、サブシェルの出力がsshコマンドの入力になります。

function execute() { 
    (echo prepare_something ; cat) | ssh [email protected] /bin/bash 
} 
+1

++としてください。実際には具体的な違いはありませんが、_groupコマンドはサブシェルの代わりに実行します: '{echo prepare_something;ネコ; } ' – mklement0

+1

@ mklement0、はい、良い提案です。グループコマンドは新しいプロセスを作成しません。 –

+1

Billありがとう!それは完璧に動作します! @ mklement0私にグループコマンドを教えてくれてありがとう! –

関連する問題