32

次のような方法で使用される実行可能ファイルがあります。

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

より効率的にするために、入力ファイルの代わりにBash変数を使用したいと思います。だから、私は次のようなことをしたいと思います:

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

ここで、角括弧はいくつかの巧妙なコードを表しています。

この方法で記述された実行可能ファイルに情報をパイプすることを可能にするいくつかのトリックを知っていますか?

あなたの援助に感謝します

4

4 に答える 4

56

次の構成を使用できます。

<(command)

したがって、bashにコマンドを出力としてFIFOを作成させるには、試行する代わりに、次の-i ["${inputData}"]ようにします。

-i <(echo "$inputData")

したがって、これが最終的な合計コマンドです。

executable -v -i <(echo "$inputData") -o outputFile.eps
于 2013-02-12T19:49:28.483 に答える
14

Echoを任意の入力に使用するのは安全ではありません

inputdata='\ntest'またはのような病理学的症例を正しく処理するにinputdata='-e'は、

executable -v -i <(cat <<< "$inputData")

zshcatは必要ありません


編集:これでも末尾の改行が追加されます。正確な変数の内容をバイトごとに出力するには、次が必要です。

executable -v -i <(printf "%s" "$inputData")
于 2018-03-27T17:54:13.397 に答える
3

注:zshのみ:

の内容を含むファイル名を取得するには${variable}、次を使用します。

<(<<<${variable})

ノート:

  • <<<${variable}STDINから来るようにリダイレクト${variable}
  • <<<${variable}と同等です(ただし、より高速です)cat <<<${variable}

したがって、OPの場合:

executable -v -i <(<<<${inputData}) -o outputFile.eps
于 2018-06-25T11:06:23.917 に答える
-3
executable -v -i <<<"${inputData}" -o outputFile.eps

bashでトリックを実行します。

于 2017-04-27T20:35:31.167 に答える