我们一生都需要“ / dev / null”

问:但是我使用Windows,该怎么办?

答:好的,即使/ dev / null的概念存在于Windows中,但是以另一种方式( NUL ),更改操作系统是一个更好的解决方案。

免责声明:这不是一篇旨在阻止人们使用Windows的宣传文章,它只是改变大脑工作的操作系统的隐喻。 但是,如果您使用Windows,也许您也应该这样做?

问:好的,现在我准备好接受信仰的飞跃,忘记我的错误了。 最重要的是,当它们出现时,我想完全忽略它们。 你下一步怎么做?

答:*对于存储在errors.txt文件中的旧错误,请执行以下操作:

  $ cat / dev / null> errors.txt 

*现在您知道了窍门,对于将来可能在执行它们时会产生错误的动作,请始终立即执行:

  $ actions.sh> / dev / null 2 >& 1 

是的,对于无条件无错误产生的东西,拒绝是最好的审判。

更认真

/ dev / null是Linux系统中的文件,每次系统启动时都会新创建。 它的作用使它不仅仅是一个文件,更像是一个设备。 在以下两种情况下可以感觉到其有用性。

干净地处理错误

想要巧妙地处理由于错误而可能生成的行的Bash开发人员肯定会在其代码中使用/ dev / null

实际上,假设您正在安装软件包。 要隐藏令人感到痛苦的错误行,您可以将它们汇总成一行,然后输出更个性化的消息,以便通知您操作已失败。 这要归功于“ echo $?”命令,如果命令成功则输出0,否则返回零。

根据您要处理的内容,可以重定向将输出到终端的消息,错误或同时输出和错误。 你应该注意

  $命令> / dev / null 

默认情况下重定向标准输出( stdout ),

  $命令2> / dev / null 

重定向标准错误( stderr )并

  $命令> / dev / null 2>&1 

摆脱了stderrstdout 。 生活有多酷?

清空文件

当您要保留文件但将其从内容中清空时,这变得很方便。 即使可以

  $>文件名 

今天我们要让/ dev / null成为明星。 一个合理的选择,因为它已经是本文的主角。 因此,让我们看看如何使用它:

  $ cat / dev / null>文件名 

故事的道德启示

好吧,您现在应该已经了解了这个隐喻。 您的大脑就是您的操作系统,如果您让它拥有可以让您的生活更轻松,更轻松的空设备,那将会很酷。 我们都会犯错,但是,无论是将其存储在内存中还是通过控制台输出(您的声音是您的标准配置)来完全认可它们,可能对您的伤害大于对您的福祉的伤害。

资料来源:

[1] https://www.networkworld.com/article/3025497/sending-data-into-the-void-with-dev-null.html