【发布时间】:2017-02-03 22:44:57
【问题描述】:
如何将命令输出或“失败”写入同一个文件?我正在尝试的是如下所示
command1 || echo failed > myfile.out
上面的命令没有按预期工作。它总是打印失败作为 myfile.out 的输出
【问题讨论】:
-
你可以试试“(command1 || echo failed) > myfile.out”
-
或
{ command1 || echo failed; } > myfile.out-- 括号强制命令由子shell执行,而花括号只是将它们分组而不强制子shell。 -
虽然@GordonDavisson 的评论可能解决了您的问题,但如果只是为了该问题的未来读者,解释您的期望是什么以及该命令实际执行的操作不起作用,这将很有用正如预期的那样。
-
@Fred 所以上面的问题还不够详细?
-
@yalkris 虽然经验丰富的 shell 用户会立即看到在这种情况下出了什么问题并了解您的期望(以及解决方案为何有效),但在您的问题中描述您正在尝试的内容很有用实现(你做了什么),以及你当前的代码具体做了什么。