nano
, como a maioria dos editores de texto, espera que um nome de arquivo seja editado como seu argumento de linha de comando, e não como entrada padrão.
$ which env | nano # pass as standard input, does not work
$ nano "$(which env)" # pass as command-line argument, works
Portanto, não está funcionando porque não é assim que o nano espera ser usado.
Com alguns editores (aparentemente não sua versão do nano), você pode usar:
$ which env | some-other-editor - # note hyphen as file name
para editar entrada padrão como texto (você estaria editando um documento com a string "/ usr / bin / env", não o programa / usr / bin / env).
Além disso, se você quiser alterar nomes delimitados na entrada padrão em argumentos, xargs
fará isso para você.
PS: which
nem sempre faz o que você quer, considere command -v
. Para detalhes, veja
Por que não usar "which"? O que usar então?