이 명령을 통해 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
따라서 나노가 사용되는 방식이 아니기 때문에 작동하지 않습니다.
일부 편집자(분명히 귀하의 nano 버전은 아님)의 경우 다음을 사용할 수 있습니다.
$ which env | some-other-editor - # note hyphen as file name
도착하다편집하다텍스트로서의 표준 입력(프로그램 /usr/bin/env 자체가 아닌 문서를 편집하려면 "/usr/bin/env" 문자열을 사용합니다).
또한, 표준 입력의 구분된 이름을 매개변수로 변경하려는 경우에도 xargs
해당 작업을 수행해 드립니다.
추신: which
항상 원하는 대로 하지 말고, 생각해 보세요 command -v
. 자세한 내용은 참조
" which "를 사용하지 않는 이유는 무엇입니까? 그러면 무엇을 사용해야 합니까?