为什么成功是bash的错误?

时间:2015-10-15 14:15:07

标签: bash cd

在bash中工作我遇到了一个错误:

user@host:~$ cd ..
bash: cd: write error: Success

它发生了一次,下次我尝试cd一切都很顺利。但是我不想重复这个错误,所以我对这个错误有2个问题:

  1. 为什么bash在改变dir时试图写点什么?
  2. 更有趣 - 为什么成功可能是一个错误?

1 个答案:

答案 0 :(得分:0)

  
      
  1. 为什么bash在改变dir时试图写点什么?
  2.   

Bash会记录您运行的每个命令的历史记录,最终会记录在~/.bash_history中。尝试写入可能与此有关。

  
      
  1. 更有趣 - 为什么成功可能是一个错误?
  2.   

这是一个显示错误。成功不是错误。

如果您希望开发人员了解它是如何发生的,我非常有信心这样说:

  • bash检测到错误,可能是通过I / O函数的返回码和
  • 它调用C perror()函数来打印解释性消息。但是,当它这样做时,
  • C errno变量已被重置,如果它已被设置在第一位。

通常在调用发出错误的函数和调用errno之间调用另一个库函数时会发生perror()的重置。查看实际的错误消息,bash实现调用sprintf()来格式化错误消息的一部分是合理的,但这样做会破坏errno

相关问题