You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在zsh脚本中仅重定向stderr至/dev/null并将stdout写入文件

zsh中正确的输出重定向写法

你之前的写法cmd -opt val > info.txt > /dev/null无效,是因为zsh里连续对标准输出(stdout,文件描述符1)使用>重定向时,最后一个重定向会覆盖前面的,最终stdout会被指向/dev/null,导致info.txt里没有内容,同时终端也看不到输出,但这不符合你要把stdout写入文件的需求。

正确的写法需要分别指定不同文件描述符的重定向:

  • 标准写法:

    cmd -opt val > info.txt 2> /dev/null
    

    其中:

    • > info.txt:将stdout(文件描述符1)写入info.txt
    • 2> /dev/null:将stderr(文件描述符2)重定向到/dev/null(丢弃错误输出)
      这样终端不会显示任何输出,同时info.txt会保留命令的标准输出内容。
  • 另一种等价写法(关闭stderr):

    cmd -opt val > info.txt 2>&-
    

    2>&-表示直接关闭stderr,效果和重定向到/dev/null一致,部分场景下效率更高。

内容的提问来源于stack exchange,提问作者murray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:54:26