출력 리디렉션, 파이프 및 ``

출력 리디렉션, 파이프 및 ``

이 명령을 통해 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

따라서 나노가 사용되는 방식이 아니기 때문에 작동하지 않습니다.

일부 편집자(분명히 귀하의 nano 버전은 아님)의 경우 다음을 사용할 수 있습니다.

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

도착하다편집하다텍스트로서의 표준 입력(프로그램 /usr/bin/env 자체가 아닌 문서를 편집하려면 "/usr/bin/env" 문자열을 사용합니다).

또한, 표준 입력의 구분된 이름을 매개변수로 변경하려는 경우에도 xargs해당 작업을 수행해 드립니다.

추신: which항상 원하는 대로 하지 말고, 생각해 보세요 command -v. 자세한 내용은 참조 " which "를 사용하지 않는 이유는 무엇입니까? 그러면 무엇을 사용해야 합니까?

관련 정보