bash関数が定義されたファイルを見つける方法がわかりません(__git_ps1
私の場合)。
declare
、type
試してみましたが、which
ソースファイルを教えてくれませんでした。declare
ファイル名と行番号を印刷できることをどこかで読みましたが、方法は説明されていません。help
ページdeclare
には何も言いません。
この情報をどのように取得できますか?
ベストアンサー1
関数を実行する準備ができたら、set -x
トレースの実行とPS4
変数の設定で情報を取得できます。
bashを起動するか、
--debugger
それを使用して追加のshopt -s extdebug
デバッグ情報を記録します。Set
PS4
、ソース行を表示するために追跡すると、「ヒント」が印刷されます。追跡をオンにします。
その後、関数を実行し、各行ごとに関数のファイル名を取得できます。
set +x
トレースをオフにするために使用されます。
したがって、この場合は以下を実行します。
bash --debugger
PS4='+ ${BASH_SOURCE[0]} '
set -x ; __git_ps1 ; set +x