シェルスクリプトから現在の行番号を印刷したいです。$LINENO
Bashシェルの変数について知っていますが、Bourneシェルには存在しないようです。行番号を取得する他の変数や方法はありますか?
ベストアンサー1
LINENO
kshの機能で、bashとzshにもあります。 Bourneシェル、POSIX仕様、またはダッシュにはそのような機能はありません。行番号が必要な場合は、その機能を備えたシェルでスクリプトが実行されていることを確認してください。ほとんどのシステムはbashまたはkshを提供します。
if [ -z "$LINENO" ]; then
if type ksh >/dev/null 2>/dev/null; then
exec ksh "$0" "$@"
elif type bash >/dev/null 2>/dev/null; then
exec ksh "$0" "$@"
else
echo 1>&2 "$0: Fatal error: unable to find a shell that supports LINENO."
exit 100
fi
fi