当来自脚本的 运行 时,zsh 不显示失败的 C 可执行文件的 signal/error 名称
zsh doesn't show signal/error name for a failed C executable when run from a script
我刚刚发现我的 zsh 在出现 运行time 错误时不会提醒我。
谁能帮帮我?
int main(void) {
int a = 1;
int b = 0;
int c = a/b;
return 0;
}
我编译了它并写了一个脚本给运行它,
./a.out
然后我输入了zsh a.sh
。它完成没有任何错误。
但是当我用命令行 运行 它时 ./a.out
它显示:
zsh: floating point exception ./a.out
我使用的是 MacOS Monterey 12.2.1,我的 zsh 是 zsh 5.8 (x86_64-apple-darwin21.0)
。
非常感谢!
我现在明白交互式和非交互式 shell 有许多不同的行为,但我仍然不知道 zsh 是否有办法告诉我错误。 (尤其是当脚本在 .zshrc 中时)错误消息很重要。
您看到的错误消息特定于交互式 shell,它检测到您的程序退出并出现 floating-point 异常并报告它。不清楚如何使non-interactive shell 类似地报告错误,但最好自己error-checking 这样做。例如,
./a.out
case $? in
0) print "Success" ;;
*) print "Error: $?" ;;
esac
我刚刚发现我的 zsh 在出现 运行time 错误时不会提醒我。 谁能帮帮我?
int main(void) {
int a = 1;
int b = 0;
int c = a/b;
return 0;
}
我编译了它并写了一个脚本给运行它,
./a.out
然后我输入了zsh a.sh
。它完成没有任何错误。
但是当我用命令行 运行 它时 ./a.out
它显示:
zsh: floating point exception ./a.out
我使用的是 MacOS Monterey 12.2.1,我的 zsh 是 zsh 5.8 (x86_64-apple-darwin21.0)
。
非常感谢!
我现在明白交互式和非交互式 shell 有许多不同的行为,但我仍然不知道 zsh 是否有办法告诉我错误。 (尤其是当脚本在 .zshrc 中时)错误消息很重要。
您看到的错误消息特定于交互式 shell,它检测到您的程序退出并出现 floating-point 异常并报告它。不清楚如何使non-interactive shell 类似地报告错误,但最好自己error-checking 这样做。例如,
./a.out
case $? in
0) print "Success" ;;
*) print "Error: $?" ;;
esac