zsh 사전 명령 수정자의 사용 예는 무엇입니까 -?

zsh 사전 명령 수정자의 사용 예는 무엇입니까 -?

man zshbuiltins나는 인용된 이 사전 명령 수정자를 발견했습니다 man zshmisc. 예제를 찾아보았지만 찾을 수 없었습니다.

내 페이지에 표시되는 내용은 다음과 같습니다 man zshmisc.

PRECOMMAND MODIFIERS
   A simple command may be preceded by a precommand modifier, which  will  alter
   how  the  command is interpreted.  These modifiers are shell builtin commands
   with the exception of nocorrect which is a reserved word.

   -      The command is executed with a `-' prepended to its argv[0] string.

내가 시도한 것은 다음과 같습니다.

prompt> - echo
cd: no such file or directory: /Users/bmiller286/Projects/bgovecholonestar-eventsvc

이 사전 명령 수정자를 사용하는 방법에 대한 한두 가지 예는 무엇입니까?

oh-my-zsh편집: 별칭이 -처럼 보이는데 cd -, 이는 왜 cd불평하는지 설명합니다. 지금까지 나는 패러다임 앞에 이러한 추가 기능을 지원하는 사용 사례를 하나만 보았으며 -그것은 argv[0]로그인 셸이었습니다.

위의 문서는 이것이 로그인 쉘에만 국한되지 않고 일반적인 패러다임인 것처럼 동작합니다. 그래서,

  1. 이것은 기본적으로 로그인 쉘에 불과합니까?
  2. 그렇지 않다면 이것은 많은 프로그램이 지원하는 일반적인 이스터 에그입니까?
  3. 이를 지원하는 프로그램을 인터넷에서 검색하려면 무엇을 검색해야 합니까? ( -많은 엔진이 이를 부정 연산자로 취급하기 때문에 검색이 어렵습니다 . 사전 명령 수정자를 검색해도 이 항목은 거의 발견되지 않습니다.)

답변1

이것:

% cat > .bash_login
echo this is a login shell
% bash
bash$ exit
% - bash
this is a login shell
bash$

또는 영어로: 일부 쉘은 자신의 것을 확인 argv[0]하고 거기에 대시가 있으면 "로그인 쉘" 모드로 들어갑니다. 이것이 다양한 셸에서 무엇을 의미하든 적어도 읽은 시작 파일이 변경될 가능성은 있습니다. Bash의 경우 다음을 참조하세요.6.1 배쉬 호출하기그리고6.2 Bash 시작 파일;zsh의 경우 적어도5.1 파일 시작/닫기매뉴얼에는 로그인 쉘이 언급되어 있습니다(그러나 쉘이 로그인 쉘인지를 결정하는 방법을 설명하는 섹션을 찾을 수 없습니다).

Zsh는 필요할 경우 이 기능에 쉽게 액세스할 수 있는 방법을 제공하기 위해 여기에 있는 것 같습니다. 이를 수행하는 다른 방법이 있을 수 있습니다. 적어도 -lBash와 Dash가 선택한 옵션은 같은 의미입니다.

관련 정보