初期化スクリプトの 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}"

スクリプトは文字列を解析しstatusrestart等を完成します。ここでは、ジョブパラメータを管理するために次のようなCaseステートメントを使用するとします。

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

関連情報