首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么zsh隐藏c程序的错误输出?

为什么zsh隐藏c程序的错误输出?
EN

Stack Overflow用户
提问于 2019-09-30 01:22:26
回答 2查看 1.8K关注 0票数 2

我有一个用C写的程序失败了。当我在zsh中运行它时,程序会失败,但是它的错误输出不会显示在命令行中(注意,第二个➜是红色的,表示执行失败):

代码语言:javascript
复制
hpsc-hw2-USER on  master 
➜ ./sort -a 405500

hpsc-hw2-USER on  master 
➜ 

但是,当我在bash中运行它时,会出现以下错误:

代码语言:javascript
复制
[USER@COMPUTER hpsc-hw2-USER]$ ./sort -a 405500
Segmentation fault (core dumped)

知道为什么吗?我正在运行oh-my-zsh的宇宙飞船主题,如果这有帮助的话。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-30 01:54:08

但是它的错误输出没有显示在命令行中

这不是你的程序写到屏幕上的东西。是外壳在写它。所以贝壳不是在“隐藏”它。

我本人并不使用zsh,但是由于红色箭头表示程序被异常终止,我想您可以查看红色箭头的代码并创建自定义消息。下面是一个关于可能帮助您的错误代码的问题:分段错误返回的进程是什么错误代码?

我记得有一次我做了一个自定义bash提示符,它显示了最后的退出代码。也许我用过这个,但我不确定:使用最后退出代码的Bash提示符

以下是关于如何自定义宇宙飞船主题提示的文档:代码

我假设您需要将exit_code添加到.zshrc文件中的SPACESHIP_PROMPT_ORDER部分。

知道为什么吗?

你可能得问开发人员。一个同样有效的问题是:“为什么bash打印‘分割错误’?”这只是设计上的选择。Bash不打印发生分段错误的内存地址。为什么会这样呢?

似乎oh-my-zsh的开发人员认为用一个红色箭头就足够了。

票数 1
EN

Stack Overflow用户

发布于 2019-09-30 04:11:19

知道如何使zsh输出错误消息吗?

最后一个命令的结果存储在shell变量?中,因此您可以使用类似于print $?echo $?的内容打印它。与大多数shell一样,zsh是非常可配置的,因此您可以编写一个脚本,例如在提示符中包含最后一个命令的结果。在这篇博客文章中,作者将zsh配置为在正确的提示符中显示非零结果:在Zsh显示最后命令的出口代码

或者为什么它一开始就不这么做?

Shell命令通常不会崩溃,如果它们遇到错误,它们通常提供比单独返回代码更有用的输出。返回代码对于脚本最有用,因此您可以编写一个处理错误条件的脚本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58160498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档