쉘 명령 앞의 퍼센트 부호 (%)


9

방금 코드에 많은 코드를 붙여 넣었지만 %명령을 실행하기 전에 선행 코드를 제거하는 것을 잊었습니다 . 아무것도하지 않은 것 같습니다. 왜 이것이 내 쉘 ( zsh ) 에서 아무것도하지 않습니까?

> % echo foo

에서 bash는 , 나는 다음을 얻을

> % echo foo
bash: fg: %: no such job

명령을 실행해도 부작용이 없는지 확인하고 싶습니다.

답변:


9

%zsh의 "작업 제어 및 프로세스 제어"기능의 일부로 사용되는 'jobid'를 나타냅니다. 사용 설명서에서 인용하려면 :

'fg' is the default operation on jobs referred to with the '%' notation,
so just typing '%1' with no command name would have worked, too.

예:

$> man zshall &
[1]  + 31392 suspended (tty output)  man zshall
$> jobs
[1]  + suspended (tty output)  man zshall
$> %
<manpage-opens-for-zshall>

자세한 내용은 여기를 참조하십시오 : http://zsh.sourceforge.net/Guide/zshguide03.html#l39

실제 질문에 대답하려면 : zsh가 경고를 표시하지 않으면 ( "fg : 현재 작업 없음"등) 작업이 있습니다. 예:

$> sleep 60 &
$> % echo foo
[1]  + 411 running    sleep 60
fg: job not found: echo

%단지 백그라운드 프로세스를 다시 가지고 그것을 실행합니다. 60 초 후 발견되지 않은 다음 'jobid'를 얻었습니다.

따라서 : 당신이 경험 한 행동은 약간 이상합니다. 전체 zshrc가 없으면 정확히 무슨 일이 일어나고 있는지 말하기가 어렵습니다. '%'문자가 주석을 시작한다고 zsh에 알려주는 것처럼 보입니다. histchars매개 변수의 세 번째 값을 확인합니다 .

$> echo $histchars

훌륭합니다, 고마워요 테스트를 복제하고로 실행중인 작업을 포 그라운드 할 수있었습니다 %. 잘 잡을 수 $histchars있지만 광산은 해시 기호 ( !^#)입니다. 내 특정 사례에 대한 대답을 추측하고 있는데 zsh에서 이상하게 동작하는 백그라운드 프로세스가 있다는 것입니다. 쉘 레슨에 다시 한번 감사드립니다!
Dave
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.