![zsh 완료가 '서비스'에 대해 작동하지 않습니다.](https://linux55.com/image/173275/zsh%20%EC%99%84%EB%A3%8C%EA%B0%80%20'%EC%84%9C%EB%B9%84%EC%8A%A4'%EC%97%90%20%EB%8C%80%ED%95%B4%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
"서비스"를 사용하면 zsh completion
기본값만 가져오고 start
완료 stop
됩니다.
zsh
"서비스"의 완료는 에 의해 처리됩니다 /usr/share/zsh/functions/Completion/Unix/_init_d
.
예를 들어 에 대해 완성 기능을 사용할 때 service ssh <TAB>
ssh 시작 파일을 구문 분석 /etc/init.d/ssh
하고 다음과 같은 모든 사례 문을 가져와야 합니다.
restart)
...
try-restart)
하지만 Case문 뒤에 코멘트가 있으면 작동하지 않습니다.
restart) ### comment
...
try-restart) ### comment
_init_d
나는 파싱 부분이 다음과 같다고 생각한다.
read -u0 -k2 magic < $script && [[ $magic = '#!' ]] && {
cmds=( ${(f)"$(< $script)"} )
cmds=( ${(M)cmds:#[[:blank:]]#${~what}([[:blank:]]#\|[[:blank:]]#${~what})#[[:blank:]]#\)} )
cmds=( ${${(j:|:s:|:)cmds}//[^-a-z_]} )
}
주석이 Case 문 뒤에 있어도 구문 분석되도록 수정하려면 어떻게 해야 합니까?