このコマンドを介してtoの結果を渡そうとしていますが、which env
概念全体を理解していないようです。nano
nano < 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」を使わないのはなぜですか?それでは何を使うべきですか?