질문을 작성할 때:
-
이름이 지정된 파일이 변수에 저장되는 경우를 일반화하려고 합니다 .
에서는 zsh
단일 하이픈을 포함하도록 변수를 설정하려고 합니다.
% var=-
% echo $var
% var='-'
% echo $var
% var=\-
% echo $var
%
왜 작동하지 않습니까?
이 점에서 왜 zsh
다른가요 ?bash
어떻게 $var
설정 하나요 -
?
답변1
또한 중요한 것은 변수의 실제 값이 아니라 변수의 상태인 경우가 많습니다. 이 echo
경우. Zsh는 echo
단일 대시를 옵션 끝 표시로 처리하므로 제거합니다.온라인 매뉴얼:
표준을 준수하기 위해 이중 대시는 옵션 처리를 종료하지 않고 직접 인쇄됩니다. 그러나 단일 대시는 옵션 처리를 종료하므로 첫 번째 대시(옵션 뒤에 올 수 있음)는 인쇄되지 않지만 그 뒤의 모든 대시는 인수로 인쇄됩니다.단일 대시는 다른 쉘과 다르게 작동합니다.텍스트를 인쇄하는 보다 이식 가능한 방법은 다음을 참조하세요.인쇄 기능, zsh에서 텍스트를 인쇄하는 보다 제어된 방법은 다음을 참조하세요.인쇄.
그래서 우리는:
zsh% echo -
zsh% echo - -n
-n
zsh% var=-
zsh% printf "%s\n" "$var"
-
또한보십시오: