Advertisement

linux: 学习Shell指令的输出重定向与错误处理机制

阅读量:

在类Unix系统中,I/O流的转向操作属于常规处理方式,其核心功能在于调整命令执行结果的传输路径。Shell环境支持以下三种主要类型的I/O流:

  1. stdout(标准输出)- 对应的文件描述符编号为1
  2. stderr(标准错误)- 对应的文件描述符编号为2
  3. stdin(标准输入)- 对应的文件描述符编号为0
在这里插入图片描述

如图所示,两个 nc 命令的执行过程存在差异,主要体现在其重定向操作的设置上。

分析第一个命令:

复制代码
    nc -zv 10.0.0.1 443 2>&1 >> /dev/null
    
    
      
    

在该命令中,2>&1 的作用是将标准错误流导向当前标准输出的位置,然而这一操作发生在 >> /dev/null 之前,因此此时的标准输出尚未被转存至 /dev/null。由此可知,标准错误与标准输出的内容均会被显示在终端界面上。

分析第二个命令:

复制代码
    nc -zv 10.0.0.1 443 > /dev/null 2>&1
    

全部评论 (0)

还没有任何评论哟~