出力リダイレクト、パイプ、および

出力リダイレクト、パイプ、および

このコマンドを介してtoの結果を渡そうとしていますが、which env概念全体を理解していないようです。nanonano < which env

which envこれを行うときに、STDOUTがSTDINに移動すると仮定しますnano。だからこれはと同じでしょうnano /some/path。しかし、明らかに私が間違っていました。

私もwhich env | nano同じように試しましたが、結果は次のとおりです。

SIGHUPまたはSIGTERMを受信しました

誰かがこれを明確にすることができますか?

答え1

nanoほとんどのテキストエディタと同様に、ファイル名は標準入力ではなくコマンドライン引数で編集されます。

$ which env | nano    # pass as standard input, does not work
$ nano "$(which env)" # pass as command-line argument, works

したがって、ナノが使用される方法ではないため、機能しません。

一部の編集者(明らかにあなたのナノバージョンではない)の場合は、次のものを使用できます。

$ which env | some-other-editor -  # note hyphen as file name

到着編集するテキストとしての標準入力(プログラム/usr/bin/env自体ではなく文書を編集するには、「/usr/bin/env」文字列を使用します)。

また、標準入力の区切られた名前をパラメータに変更したい場合にも対応xargsします。

PS:which常に好きなようにしないで、考えてみてくださいcommand -v。詳細については参照 「which」を使わないのはなぜですか?それでは何を使うべきですか?

関連情報