【问题标题】:Bash: Write stdout to file only if command succeededBash:仅当命令成功时才将标准输出写入文件
【发布时间】:2020-04-23 08:14:08
【问题描述】:

当我执行foo > bar.txt 时,无论foo 是否成功,都会创建bar.txt。如果foo 成功,我如何才能创建bar.txt

【问题讨论】:

  • 重定向到一个临时文件,如果命令成功则将其移动到真实文件(否则删除它)。或者如果命令失败就直接删除文件?

标签: bash stdout exit-code


【解决方案1】:

foo > bar.txt || rm bar.txt 应该可以工作,并且简洁明了。

【讨论】:

  • 不错的解决方案,但是如果文件bar.txt 已经存在,您将失去其先前版本而没有新版本。在大多数情况下,这不是问题。
猜你喜欢
  • 2013-03-18
  • 2021-02-26
  • 2018-09-09
  • 2021-06-24
  • 2014-02-19
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
  • 2012-02-18
相关资源
最近更新 更多