コマンドの途中でstdoutをパイプするためにemacsを使用できますか?

コマンドの途中でstdoutをパイプするためにemacsを使用できますか?

注文する

emacs -nw foo -f org-mode

fooemacsファイルを開きますorg-mode

ここで、ファイル名がfooスクリプトの出力であると仮定します。コマンドをどのようにパイプできますか?

だから私は次のようなものを取得したいと思います。

echo foo | emacs -nw {GET OUTPUT HERE} -f org-mode

働く可能ですか?

編集:この質問は終了として投票されましたが、参照の回答は機能しません。終了として投票したユーザーはテストしていません。

答え1

(コメントで提案されているように)単にサブシェルを使用するのはどうですか?

emacs -nw $(<COMMAND GOES HERE>) -f org-mode

例えば

emacs -nw $(echo foo) -f org-mode

組織モードで「foo」を開きます

答え2

aを使用してreadパイプからファイル名を取得し、コマンドに変数として渡します。

たとえば、シェル関数を使用する場合(おそらく最良の名前ではないかもしれませんが、より良い名前を考えるかもしれません):

emacspipe () {
    local filename
    read filename
    emacs -nw "$filename" -f org-mode
}

その後、次のものを使用できます。

$ echo foo | emacspipe

$(...)しかし、他の答えが示唆しているように、コマンド置換を使用することは、同じタスクを実行するためのより適切な方法です。何かをパイプで接続するコマンドがある場合は、それをブロックで簡単に実行し、結果のファイル$(...)名をemacsを起動するスクリプトまたは関数に引数として渡すことができます。

関連情報