2013-02-12 18 views
9

の入力としてファイルの代わりにbashの変数を使用:より効率的であるために私は次のような方法で使用される実行可能持つ実行可能

executable -v -i inputFile.txt -o outputFile.eps 

を、私が使用したいです入力ファイルの代わりにBash変数。だから、私は次のようなことをしたい:

executable -v -i ["${inputData}"] -o outputFile.eps 

ここで、大括弧は巧妙なコードを表しています。

このように記述された実行可能ファイルに情報をパイプするためのトリックを知っていますか?あなたの援助

+0

あなたが何をしたいのかは少し不明です。同様に、inputDataの値は何ですか? – hyde

+1

"$ {inputData}"はシンプルですが、実際にファイルを使用せずにファイルとしてパッケージ化したい(非揮発性メモリに格納する必要があるかもしれません)ASCIIデータです。ユーザーmikyraは、私が必要と思うプロセス置換を含むアプローチを提案します。ご協力いただきありがとうございます。 – d3pd

+0

ああ、今私はそれを得た...クール、私はそれを知らなかった。明らかに、* sh *や* dash *でサポートされていない* bash *機能なので、スクリプトで使用するときは '#!/ bin/bash'を使用することを忘れないでください。 + 1 + 1 – hyde

答えて

19

ため

多くのおかげであなたはbashがあなたのためのコマンド出力でFIFOを作成してもらうために構造

<(command) 

を使用することができます。だから試してください:あなたの実行可能ファイル名は幹部と定義された変数名であると仮定すると

-i <(echo "$inputData") 
+1

このプロセス置換は、私が必要とするものです。お手伝いいただきありがとうございます! – d3pd

+0

fifo pipeが動作しない入力ファイルを探す必要のあるコマンドがあります。 Zshには一時ファイルとして実装されたa =()があり、うまくいきます。 – misssprite

+1

https://www.gnu.org/software/bash/manual/bash.html#Process-このセクションを読む価値がある –

0

は、xであり、あなたは、実行可能ファイルへの入力として、xの値を渡したいです。そして、次の操作を行います。

$ echo $x > stdin && ./exec < stdin 

これはbashのにトリックを行います仕事

-1
executable -v -i <<<"${inputData}" -o outputFile.eps 

を行います。

+1

ここの文字列 '<<<は文字列をコマンドの標準入力に送ります。コマンドラインには何も置かれず、読み込むファイルのようには見えません。 – ilkkachu

関連する問題