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

shell脚本中1>/dev/null后接2>&1语法的作用是什么?

Shell 重定向语法2>&1详解

首先明确Shell中三个默认的标准文件描述符:

  • 0:标准输入(stdin),默认接收键盘输入
  • 1:标准输出(stdout),默认输出到终端屏幕
  • 2:标准错误(stderr),默认输出到终端屏幕

代码行拆解

你给出的代码mountpoint /mnt/share 1>/dev/null 2>&1可以拆分两部分理解:

  1. 1>/dev/null:把标准输出(文件描述符1)的内容重定向到/dev/null,/dev/null是Linux系统的空设备文件,所有写入它的内容都会被直接丢弃,不会保存也不会输出到终端。
  2. 2>&1:把标准错误(文件描述符2)的输出重定向到和标准输出(文件描述符1)相同的位置。

问题直接解答

  • 它不会存储任何内容:因为此时标准输出已经指向了/dev/null,所以标准错误的内容也会被送到/dev/null直接丢弃,不会写入任何文件或缓存。
  • 作用:让mountpoint命令运行过程中产生的所有正常输出、错误信息都不会在终端打印,也不会留下日志,通常用于脚本中不需要显示命令执行输出、只关心命令执行返回值的场景——你给出的这行代码大概率是后续会判断mountpoint的返回值,确认/mnt/share是不是挂载点,不需要命令本身的输出干扰脚本运行的展示效果。

补充常见误区

注意重定向的顺序不能写反,如果写成2>&1 1>/dev/null是无效的:因为2>&1执行时标准输出还指向终端,所以标准错误会先绑定到终端输出,之后再把标准输出改到/dev/null,错误信息还是会打印到屏幕上,达不到屏蔽所有输出的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:06:03