logger等でログを吐く際に、ログ出力ファイルと行番号を明示する方法。
ファイル名を${0##*/}とすればうまくいくように思えるが、関数を共通化して共通定義にまとめた場合などに上手く行かない。
BASH_SOUCEは現在のmanでは確認できない模様…。
Bash
# $0は実行プロセス名。
# BASH_SOURCEは実行中のファイルを配列に格納する。現在ファイルが[0]。
# FUNCNAMEは関数名。関数内でなければ空白
# LINENOは行番号。
/usr/bin/logger -p local0.info -t ${0##*/} FILE=${BASH_SOURCE[0]##*/} FUNC=${FUNCNAME} LINENO=${LINENO}