【问题标题】:bash set -e: How to find out on which line the script exited on? [duplicate]bash set -e:如何找出脚本在哪一行退出? [复制]
【发布时间】:2013-05-16 21:25:43
【问题描述】:

我有一个非常高级且复杂的脚本,我基本上需要使用 set -e on 进行调试(因为我不希望它在我制定逻辑时在循环中运行昂贵的操作),但它正在成为由于意外结果,很难(即使使用 set -x)找出脚本退出的确切位置。

我有大约 3 个脚本以各种方式相互调用(结合 inotifywatch),所以你可以看到它是如何变得有点毛茸茸的。

我正在寻找类似“Script x.sh exited at line 4”之类的东西,而不是无意义的[exited]

【问题讨论】:

    标签: bash shell unix


    【解决方案1】:

    阅读man bash 了解trapBASH_LINENOFUNCNAME

    您应该能够使用陷阱来调用自己的函数以防出错。在此函数中,您可以使用给定的数组来了解问题所在。

    【讨论】:

    • 哦!惊人的!哇,我已经在这些脚本之一中使用了退出陷阱。从未想过要进一步利用它。
    猜你喜欢
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2019-10-18
    相关资源
    最近更新 更多