에서는 유효하지 않습니다 csh
. bash
및 에서 이들을 사용하는 일반적인 규칙은 무엇입니까 zsh
?
답변1
Bash를 사용하면 명령 없는 리디렉션은 리디렉션을 수행한 다음 닫습니다.
< foo.txt
그 자체로 명령줄을 사용하면foo.txt
읽기 위해 파일을 연 다음 닫습니다.> foo.txt
쓰기 위해 파일을 열고foo.txt
, 필요한 경우 생성하고, 자른 다음 닫습니다. 파일을 비우는 빠른 방법.
zsh를 사용하면 명령이 실행되지 않는 리디렉션 NULLCMD
또는 READNULLCMD
.
READNULLCMD
(또는NULLCMD
`READNULLCMD가 설정되지 않은 경우) stdin 리디렉션의 경우:% echo foo > foo.txt % READNULLCMD=nl % < foo.txt 1 foo
NULLCMD
stdout 리디렉션의 경우:% 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동작이며CSH_NULLCMD
에뮬레이트할 때 기본적으로 설정됩니다.csh.옵션이
SH_NULLCMD
설정되면 내장 기능이:
지정된 리디렉션과 함께 명령으로 삽입됩니다. 에뮬레이트할 때 기본값입니다.쉿또는크쉬.그렇지 않고 매개변수가
NULLCMD
설정된 경우 해당 값은 지정된 리디렉션과 함께 명령으로 사용됩니다.NULLCMD
및 가 모두 설정된 경우READNULLCMD
리디렉션이 입력일 때 전자 값 대신 후자의 값이 사용됩니다. 기본값은NULLCMD
'cat
'이고 forREADNULLCMD
는 'more
'입니다. 따라서< file
터미널인 경우 페이징을 사용하여 표준 출력에 파일 내용을 표시합니다. 쉘 기능을 참조할 수도 있습니다
NULLCMD
.READNULLCMD