초기화 스크립트를 위한 bash_completion

초기화 스크립트를 위한 bash_completion

나는 내 자신의 initscript를 작성했습니다 /etc/init.d/myscript. 서비스 명령을 사용하여 스크립트를 시작하고 중지할 수 있습니다.

service myscript start
service myscript stop

를 입력하면 bash_completion은 를 포함한 service <TAB>모든 초기화 스크립트를 표시 하지만 입력할 때 아무 일도 일어나지 않습니다. 다른 init 스크립트와 마찬가지로 bash_completion이 이를 제공하길 원합니다 . 예를 들어 bash_completion은 작동 하지만 어디에 정의되어 있는지 모르겠습니다. 또는 이 없습니다 . 그럼 정보는 어디서 얻나요? 스크립트 정보를 어디에 추가해야 합니까?/etc/init.d/myscriptservice myscript <TAB>startstopservice cups <TAB>/usr/share/bash-completion/completions/cups/etc/bash_completion.d/cupsservice

답변1

bash-completionEPEL 저장소의 CentOS에서 사용할 수 있는 것과 같은 이전 버전에서는 /usr/share/bash-completion/컵 완성과 같은 예를 기반으로 추가 스크립트를 추가해야 할 수도 있습니다.

Fedora 19와 같은 최신 시스템에서 bash-completion은 _service()설치된 모든 서비스에 대해 기본적으로 제공 및 작동하는 기본 스크립트의 및 기능과 함께 제공됩니다. 그것은 즉시 작동해야합니다._services()/usr/share/bash-completion/bash-completionstartstop

더 많은 작업을 지원하려면 다음과 같이 using 작업을 추가하세요.

 *)
    echo $"Usage: $0 {start|stop|status|restart|reload|force-reload}"

스크립트는 문자열을 구문 분석하고 status, restart등을 완성합니다. 여기서는 작업 매개변수를 관리하기 위해 다음과 같은 Case 문을 사용한다고 가정합니다.

case $1 in
   start)
   [...]
   ;;
   stop)
   [...]
   ;;
   status)
   [...]
   ;;
   *)
      echo $"Usage: $0 {start|stop|status}"
esac

관련 정보