에서는 유효하지 않습니다 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