shell 使`yes`命令以非零返回码退出?[关闭]

c9x0cxw0  于 11个月前  发布在  Shell
关注(0)|答案(1)|浏览(95)

**已关闭。**此问题不符合Stack Overflow guidelines。目前不接受回答。

这个问题似乎与help center中定义的范围内的编程无关。
18天前关门了。
Improve this question
我的一个朋友打赌,像yes这样简单的程序可能永远不会出错。
https://github.com/coreutils/coreutils/blob/master/src/yes.c
我认为当yes无法成功完成时,可以创建极端场景,但我的C和shell技能有限。
有没有什么方法可以让yes命令返回非零代码?限制内存?让stdout成为一个坏的fd?

nlejzf6q

nlejzf6q1#

while (full_write (STDOUT_FILENO, buf, bufused) == bufused)
    continue;
  error (0, errno, _("standard output"));
  main_exit (EXIT_FAILURE);
}

字符串
有没有办法让yes命令返回非零代码?
您发布的程序 * 总是无法成功完成 *。EXIT_FAILURE通常是1
您可以关闭yes写入的文件描述符,例如yes >&-
您也可以使用信号退出yes,在这种情况下,它也会因为信号而退出,通常由实用程序报告为等于128 +信号号的退出状态。
您可以传递一个无效的命令行参数,如yes --invalid,在这种情况下,它也将以1退出。
最后,yes --helpyes程序成功退出的唯一情况。

相关问题