shell中的重定向 1>&2 2>&1 >&2

shell 重定向 2>&1 linux bash shell重定向问题 阅读详情

当初在shell中, 看到">&1"和">&2"始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出. 

在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是: 

0: Standard Input (STDIN) 

1: Standard Output (STDOUT) 

2: Standard Error Output (STDERR) 

在标准情况下, 这些FD分别跟如下设备关联: 

stdin(0): keyboard  键盘输入,并返回在前端 

stdout(1): monitor  正确返回值 输出到前端 

stderr(2): monitor 错误返回值 输出到前端 

举例说明吧: 

当前目录只有一个文件 a.txt. 

[root@redhat box]# ls 

a.txt 

[root@redhat box]# ls a.txt b.txt          

ls: b.txt: No such file or directory     由于没有b.txt这个文件, 于是返回错误值, 这就是所谓的2输出 

a.txt     而这个就是所谓的1输出 

再接着看: 

[root@redhat box]# ls a.txt b.txt  1>file.out 2>file.err 

执行后,没有任何返回值. 原因是, 返回值都重定向到相应的文件中了,而不再前端显示 

[root@redhat box]# cat file.out 

a.txt 

[root@redhat box]# cat file.err 

ls: b.txt: No such file or directory 

一般来说, "1>" 通常可以省略成 ">". 

即可以把如上命令写成: ls a.txt b.txt  >file.out 2>file.err 

有了这些认识才能理解 "1>&2" 和 "2>&1". 

1>&2  正确返回值传递给2输出通道 &2表示2输出通道 

如果此处错写成 1>2, 就表示把1输出重定向到文件2中. 

2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道. 

举个例子. 

[root@redhat box]# ls a.txt b.txt 1>file.out 2>&1 

[root@redhat box]# cat file.out 

ls: b.txt: No such file or directory 

a.txt 

现在, 正确的输出和错误的输出都定向到了file.out这个文件中, 而不显示在前端. 

补充下, 输出不只1和2, 还有其他的类型, 这两种只是最常用和最基本的. 

 

 

 

上文来自:http://chenyubo.iteye.com/blog/321616

 

下面是百度知道上的一个问题,作为补充说明:http://zhidao.baidu.com/question/194703255.html

 

问:Linux重定向中 >&2 怎么理解?

问题补充:echo "aaaaaaaaaaaaaaaa" >&2 怎么理解?

 

答:

>&2  即 1>&2 也就是把结果输出到和标准错误一样;之前如果有定义标准错误重定向到某log文件,那么标准输出也重定向到这个log文件
如:ls 2>a1 >&2  (等同 ls >a1 2>&1)
把标准输出和标准错误都重定向到a1,终端上看不到任何信息。

 ls test2 test7 1>1.out 2>&1

深入理解 Shell 重定向:`2>&1` 的奥秘 在使用类 Unix 系统(如 Linux 或 macOS)的 Shell 环境时,我们经常会遇到各种各样的命令和符号。其中,重定向操作符扮演着至关重要的角色,它们能够灵活地控制命令的输入和输出流。在众多的重定向操作符中,2>&1常常让人感到有些困惑。本文将通过两个常见的提问,带你深入理解2>&1的含义和应用场景。 阅读详情

相关推荐

IntelliJ IDEA 中git使用说明书

IntelliJ IDEA 中git使用说明书

junyang2012的博客 5389

理解 shell 脚本中的常见用法2>&1

原文:https://www.brianstorti.com/understanding-shell-script-idiom-redirect/ 在我们接触的 shell 脚本中,对 2>&1 一定不陌生,比如 ls foo > /dev/null 2>&1。 本文就来解释下 2>&1 究竟做了什么,并且是如何起作用的。 一、I/O 重定向简介 「重定向」是计算机用来把命令的输出从一个地方,输出到另一个地方。举个例子,默认情况下,我们使用 cat 指令可以把

ROVAST的专栏 1280

企业级 Agent 在 K8s 上的运行模型

Kubernetes├── Agent Orchestrator(控制面)├── Agent Runtime Pods(执行面)├── Graph DSL(流程层)├── Tool Services(能力层)K8s(调度)+ Graph(流程)+ Agent(决策)+ Tool(执行)+ Guard(治理)

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 1172

在shell中,“ 2>&1 ”是什么意思?

要将 stderr 和 stdout 组合到 stdout 流中,我们将其附加到命令中:例如,查看编译 g++ main.cpp 的前几个错误:2>&1 的具体含义是什么?

HuntsBot的博客 1万+

5.FxBlue跟单常见问题

fxblue喊单ea和fxblue跟单会在mt4/mt5客户端ea栏目里记录fxblue在跟单复制订单过程中的全面记录。在遇到问题时,我们首先要恢复默认参数尝试,然后再到ea栏找报错提示。 ​ 需要注意的是,是EA选项卡,而不是日志选项卡。 此外,您可以在 MT4/5 软件终端面板的"EA"选项卡中查看跟单记录,您可以通过右键单击 Experts 日志并从 MT4/5 的弹出菜单中选择“打开”来打开每日日志文件以及历史文件。 5.1 No “heartbeat” received 没有收到“心跳” 接收方

weixin_44406393的博客 1874

跟着Cell学单细胞转录组分析(五):单细胞转录组marker基因鉴定及细胞群注释

书接上回(跟着Cell学单细胞转录组分析(四):单细胞转录组测序UMAP降维聚类)。完成数据降维和细胞聚类后,最主要的环节和工作就是确定各个细胞群,明确是什么类型的细胞,正群的细胞定群很关键,涉及到整个研究,所以这一步宁愿多费时间,也不要出错。当然,这也不是一蹴而就的,需要反复的确认。 要确定各个群是什么细胞,首先需要了解细胞群的marker基因,因为不同类型的细胞突出 表达的基因也是不同的。这里使用FindAllMarkers鉴定各个细胞群的高表达基因。 DefaultAssay(scedata)

qq_42090739的博客 1万+

【linux命令】Linux shell中 2>&1的含义解释(标准输入输出)及nohup后台启动

文章目录1. 首先了解下1和2在Linux中代表什么1.1 重定向1.2 标准操作符1.3 关于2 >& 1的含义1.3.1 把标准输出和标准错误输出分别指定到不同的文件中1.3.2 把标准输出和标准错误输出指定到同一个文件中 1. 首先了解下1和2在Linux中代表什么 在Linux系统中0 1 2是一个文件描述符: 上面的操作符可以理解成重定向符 1.1 重定向 什么是重定向?我们先来看下不重定向,也就是默认输出: echo "hello" 默认的输出就是输出到屏幕上,那么通过重

m0_45406092的博客 1万+

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 72

bash中,1>&2是什么意思?

文件描述符 每打开一个文件都有一个整数与之对应,这个整数就是文件描述符【0、1、2】 0:标准输入(stdin) 1:标准输出(stdout) 2:标准报错输出(stderr) 重定向符 >:输入重定向符 <:输出重定向符 1>&2:标准输入重定向到标准错误输出 ...

amara 1万+

C/C++炫酷烟花①(完整代码)

C/C++实现炫酷烟花动画的完整代码。

AIGC 2万+

Labview项目01:标准可配置序列测试框架

摘要:本文介绍了一个基于LabVIEW2020开发的通用测试框架系统。该系统采用模块化设计,包含主界面、调试界面、设置界面和登录界面。主功能包括:1)可配置测试序列,支持延时、预定值输出、随机值输出等操作;2)单步测试功能自主添加;3)界面支持测试序列编辑和权限管理。系统采用队列机制处理事件和测试流程,通过CSV文件存储测试序列,支持参数化配置。用户可自定义测试VI(A_.vi和N_.vi格式),并通过调试界面验证测试序列。最终测试结果在主界面显示,提供整体判断功能。该系统既可作为学习参考,也可用于实际测试

weixin_38637405的博客 1552

shell中,2>&1详解

我们在Linux下经常会碰到nohup command>/dev/null 2>&1 &这样形式的命令。首先我们把这条命令大概分解下,首先就是一个nohup表示当前用户和系统的会话下的进城忽略响应HUP消息。&是把该命令以后台的job的形式运行。那么就剩下command>/dev/null 2>&1,command>/dev/...

akb7208的博客 821

innovus:InstPad、CellPad 、module padding、clock cell halo

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?site_num指的是padding的大小以site宽度为单位。

m0_61544122的博客 2024

shell中的重定向 1>&2 2>&1 >&2

当初在shell中, 看到">&1"和">&2"始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出. 在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是: 0: Standard Input (STDIN) 1: Standard Output (STDOUT) 2: Standard Error Outp

NewThinker_wei 的专栏 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Linux shell中的重定向之2>&1

经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用 /tmp/test.sh > /tmp/test.log 2>&1 前半部分/tmp/test.sh > /tmp/test.log很容易理解,那么后面的2>&1是怎么回事呢? 要解释这个问题,还是得提到文件重定向。我们知道>和&1 的意思就是将标准错误也输出到标准输出当中。 下面通过一个例子来展示2>&1

Jason's BLOG 934

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

shell中的重定向(2>&1)

shell的输出可以分为标准输出和错误输出,2>&1中,2代表错误输出,1代表标准输出,&符号代表后面跟的是代号而不是文件。 test.sh echo '我是标准输出' ls /tmp/b.py 假设不存在/tmp/b.py这个文件这里会输出: 我是标准输出 ls: cannot access /tmp/b.py: No such file or di...

weixin_33831196的博客 91

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Shell重定向 &>file、2>&1、1>&2 、/dev/null的区别

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.youkuaiyun.com/u011630575/article/details/52151995 在shell脚本中,默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入)、标准输出(输出到屏幕)、标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,...

涅槃Ls的博客 104

shell 1>&2 2>&1 &>filename重定向的含义分析

在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是: 0 是一个文件描述符,表示标准输入(stdin)1是一个文件描述符,表示标准输出(stdout) 2是一个文件描述符,表示标准错误(stderr) 在标准情况下, 这些FD分别跟如下设备关联: stdin(0): keyboard 键盘输入,并返回在前端 stdout(1): monitor 正确返回值 输出到前端 stderr(2): monitor 错误返回值 输出到前端 举例说...

大林的博客 266
上一篇: shell中单引号、双引号、反引号的区别
下一篇: Shell脚本8种字符串截取方法总结
thy822
博客等级 码龄19年 313粉丝 294原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值