BASHでは、関数本体で関数名を取得できますか?次のコードを例として、関数名 "Test"を本文に出力したいが、 "$ 0"は関数名の代わりにスクリプト名を参照しているようだ。だから関数名を取得する方法は?BASHでは、関数本体で関数名を取得できますか?
#!/bin/bash
function Test
{
if [ $# -lt 1 ]
then
# how to get the function name here?
echo "$0 num" 1>&2
exit 1
fi
local num="${1}"
echo "${num}"
}
# the correct function
Test 100
# missing argument, the function should exit with error
Test
exit 0
ありがとう、これは本当に役立ちます。私は私の質問の解決策以上のことを学びます。この配列は、スクリプトが失敗したときにコールスタックを印刷するために使用できます。 –
その点で、 'BASH_LINENO'の内容が興味のあるものであることが分かります。 – FatalError
また、より短い同等の$ FUNCNAMEを使用することもできます。 –