gpt4 book ai didi

linux - 发生段错误时停止 linux bash 脚本

转载 作者:IT王子 更新时间:2023-10-29 00:55:18 24 4
gpt4 key购买 nike

如果在 linux bash 脚本中调用程序导致段错误,如何注意到,可能会停止脚本?

最佳答案

如果程序以段错误或任何其他错误退出,它将以非零退出代码退出。您可以测试此退出代码,并在执行此操作时退出您的脚本。如果你想停止任何错误(不仅仅是段错误),你可以使用:

some-crashy-program args || exit 1

如果您希望在调用的任何程序返回错误时退出脚本(作为ifwhile 的一部分除外)语句),您可以在脚本的开头调用 set -e,以便在任何命令失败时立即退出脚本。在需要随时间维护的较大脚本中,这种用法有点不鼓励,因为如果 grep 之类的东西返回非零退出代码,它可能会导致脚本在意外时间退出,但它可以如果您知道自己总是想在出现错误时停止,那么这对于快速一次性脚本很有用。

如果您只想在程序因段错误而不是任何其他错误而崩溃时退出,您可以检查具体的退出代码。在大多数系统上,SEGV 的值为 11,但您可以检查:

$ kill -l SEGV
11

然后将 128 添加到该值,这将是您的程序退出时使用的退出代码。对照它测试退出代码,看看你的程序是否因 SIGSEGV 而崩溃:

some-crashy-program args
if [ $? -eq 139 ]; then
echo "It crashed!"
exit 1
fi

关于linux - 发生段错误时停止 linux bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13463147/

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