bash와 zsh에서 `> foo.txt`와 `< foo.txt`를 단독으로 사용하는 일반적인 규칙은 무엇입니까?

bash와 zsh에서 `> foo.txt`와 `< foo.txt`를 단독으로 사용하는 일반적인 규칙은 무엇입니까?

에서는 유효하지 않습니다 csh. 및 bash에서 이를 사용하는 일반적인 규칙은 무엇입니까 zsh?

답변1

Bash를 사용하면 명령이 없는 리디렉션은 리디렉션을 수행한 다음 닫으면 됩니다.

  • < foo.txt명령줄 자체만으로 파일을 열고 foo.txt닫을 수 있습니다.
  • > foo.txt쓰기 위해 파일을 열고 foo.txt필요한 경우 파일을 생성한 후 잘라낸 다음 닫습니다. 파일을 지우는 빠른 방법.

zsh를 사용하면 리디렉션 NULLCMD또는 READNULLCMD.

  • READNULLCMD(또는 NULLCMD"READNULLCMD"가 설정되지 않은 경우) 표준 입력 리디렉션의 경우:

    % echo foo > foo.txt
    % READNULLCMD=nl
    % < foo.txt
         1  foo
    
  • NULLCMD표준 출력 리디렉션의 경우:

    % NULLCMD='ls'
    % > foo.txt   # runs $NULLCMD
    % < foo.txt   # runs $READNULLCMD, showing the output of `NULLCMD` run previously
         1  Applications
         2  Desktop
         3  Documents
         4  Downloads
    

바라보다Zsh 7.3, 명령 없는 리디렉션세부:

간단한 명령이 하나 이상의 리디렉션 연산자와 0개 이상의 매개변수 할당으로 구성되지만 명령 이름은 없는 경우 zsh는 다양한 방식으로 작동할 수 있습니다.

NULLCMD이 매개변수가 설정되지 않거나 CSH_NULLCMD이 옵션이 설정되면 오류가 발생합니다. 이것은시추동작이며 CSH_NULLCMD 시뮬레이션할 때 기본적으로 설정됩니다.시추.

이 옵션을 설정 하면 SH_NULLCMD내장 명령이 :지정된 리디렉션과 함께 명령으로 삽입됩니다. 시뮬레이션할 때의 기본값입니다.또는케시.

그렇지 않고 이 매개변수가 설정된 경우 NULLCMD해당 값은 지정된 리디렉션과 함께 명령으로 사용됩니다. 및가 모두 설정된 경우 NULLCMD리디렉션 READNULLCMD이 입력되면 전자 값 대신 후자의 값이 사용됩니다. 기본값은 NULLCMD" cat"이고 기본값은 READNULLCMD" more"입니다. 그러므로

< file

표준 출력에 파일 내용을 표시하거나 터미널의 경우 페이징을 표시합니다. 쉘 함수를 참조할 수도 있습니다 NULLCMD.READNULLCMD

관련 정보