シェルスクリプト内から、スクリプト固有の補完がユーザーによって初期化されたことを確認する方法を探していますcomplete -F ...
このチェックで、次のように補完を初期化する方法に関するアドバイスを出力してもらいたい:
Warning: Auto completion is not initialized. Please run : source ....; complete -F ...
問題は、サブシェルで実行されているスクリプトに、ユーザーが作業している親シェルの「完全な」環境に関する情報がないことです。
したがって、complete -p| grep my-script-name
決して結果を返さないでください。
ユーザーは、「source」コマンドと「complete」コマンドを実行するか、手動で .bashrc に追加する必要があります。これは、bash 補完システム ディレクトリにアクセスできないサーバーで作業しているためです。
または、スクリプト内からオートコンプリートを初期化する (チェックするだけでなく) 方法を知っている場合は、喜んで受け入れます。