gpt4 book ai didi

arrays - bash $FUNCNAME 数组未被清除

转载 作者:太空狗 更新时间:2023-10-29 12:13:44 26 4
gpt4 key购买 nike

我有很多函数,它们经常相互嵌套。为了简单的调试目的,我决定使用 bash 提供的 FUNCNAME 环境变量数组来跟踪代码流。这是示例代码:

test1(){ test2;}
test2(){ test3;}
test3(){ test4;}
test4(){ echo ${FUNCNAME[@]};}

输出看起来像这样:

test4 test3 test2 test1

这很清楚地显示了嵌套,但是如果你用 ctr+c 终止函数,然后再次运行它,FUNCNAME 不会被刷新,所以输出可能看起来像像这样(取决于你什么时候终止它):

test4 test3 test2 test1 test3 test2 test1

我尝试手动清除或unset FUNCNAME,但随后我得到空输出。关于如何解决此问题的任何想法?

最佳答案

有些人可能会说这个问题是一个特性,而不是一个错误。如果堆栈中的任何函数崩溃,您可以 echo ${funcname[@]} 查看崩溃发生的位置。最终结论是:该问题已作为错误报告,并已在 bash v4.4.0 中修复。

关于arrays - bash $FUNCNAME 数组未被清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32732344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com