位置: 编程技术 - 正文

linux shell 中 2>&1的含义

编辑:rootadmin

linux shell 中"2>&1"的含义

脚本:

nohup /mnt/Nand3/HG >/dev/null 2>&1 &

对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0 表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。

command >out.file 2>&1 & command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。 2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个& , 是让该命令在后台执行。 试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

可以用

ls 2>1测试一下,不会报没有2文件的错误,但会输出一个空的文件1;ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中;ls xxx 2>&1测试,不会生成1这个文件了,不过错误跑到标准输出了;ls xxx >out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了。何2>&1要写在后面?

command > file 2>&1

首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。command 2>&1 >file2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。

用strace可以看到:

1. command > file 2>&1这个命令中实现重定向的关键系统调用序列是:open(file) == 3dup2(3,1)dup2(1,2)

2. command 2>&1 >file

这个命令中实现重定向的关键系统调用序列是:

dup2(1,2)open(file) == 3dup2(3,1)

推荐整理分享linux shell 中 2>&1的含义,希望有所帮助,仅作参考,欢迎阅读内容。

linux shell 中 2>&1的含义

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

用expect实现的自动登录到多台服务器的shell脚本 #!/usr/bin/expect-fsetipaddress[lindex$argv0]setpasswd[lindex$argv1]settimeoutspawnsshroot@$ipaddress#expect"yes/no"#send"yesr"expect"password:"send"$passwdr"expect"]*"send"mkdir-p/tmp/haha/haha2r"s

shell脚本从SVN推送到多台服务器的代码 SRCDIR=/letv/data/www/htdocs_user/MOD=userIP_LIST=(..................)foriin${IP_LIST[*]}doecho-e"nnPUSH==$i==n"/usr/bin/rsync-vzr

检测网站down掉后自动发信的shell脚本代码 #!/bin/bash#websitetestscriptswhiletrue;doforcycle_tempin`caturl_list`doiflynx-dump`echo${cycle_temp}`-accept_all_cookies|grep"true";thenecho"Thewebsiteisrunningnaturally"elseecho"${cycle_temp}hasbeen

标签: linux shell 中 2>&1的含义

本文链接地址:https://www.jiuchutong.com/biancheng/376796.html 转载请保留说明!

上一篇:linux bash字符串处理大全(linux bash sh)

下一篇:shell脚本从SVN推送到多台服务器的代码(shell脚本switch)

  • 以前年度损益调整结转到未分配利润
  • 公司货款退款怎么写
  • 小规模纳税人需要做进项税吗
  • 款已付未收到发票怎么开
  • 期末未缴税额为负数怎么办
  • 交通补贴税前扣除标准
  • 其他应付款是不是长期负债
  • 货物及劳务税目
  • 契税晚交有什么影响
  • 厂房面积测绘收费标准
  • 与成本直接相关的工资怎么会计处理?
  • 增值税免税收入汇算清缴的时候填哪
  • 公司注销地税时其他应收款要缴纳个人所得税吗?
  • 加油发票税号错误怎么补救
  • 华为股权激励制度
  • 什么时候计提减值
  • 应交税费有余额怎么结转
  • 个税怎么抵
  • 价外收入是什么意思
  • 取得劳务收入的会计分录
  • Win7/Win8/Win10单、多系统一键安装教程 只需30秒!
  • 原材料退库怎么做凭证
  • 什么是进项税和销项税
  • 科技服务业是怎么分类的
  • php 递归函数
  • 异地项目不预缴税款可以开票吗
  • ios9.3.5如何越狱
  • 承包合同包含的内容
  • php自定义函数的语法格式
  • 利得的具体分类
  • 境外租赁要交什么税
  • 权益法下长期股权投资超额亏损
  • 用抵扣券买了东西可以退吗
  • 财务的几张报表
  • 增值税专用发票丢了怎么补救
  • 微信小程序在哪里打开
  • thinkphp官网
  • php页面跳转可以用header
  • 车辆处置收入入什么科目
  • python集合的并集符号语言
  • 现金和现金等价物包括哪些
  • 一般纳税人没有开票怎么申报增值税
  • 当月已入账可是未入账
  • mysql profiles
  • 工会其他支出包括哪些
  • 生产企业免抵退红字冲减
  • SQL Server 2005 同步复制技术
  • 法人向公司借款如何做账
  • 收到销售方负数发票可以次月入账吗
  • 税前弥补以前年度亏损
  • 已付款未收到货怎么办
  • 装修费用摊销计入什么科目
  • 考核员工的罚款计入什么
  • 房租给托管公司
  • 住房贷款利息专项附加扣除怎么用
  • 公司的日常费用支出能税前全部扣除吗?
  • 进出口货物报关单
  • 发货就要开票吗
  • 负数发票怎么开具?
  • 非流动性资产有
  • 接受捐赠的固定资产计入什么科目
  • sql to sqlalchemy 转换的小例子
  • sql server数据存放位置
  • u盘装机大师手机下载电脑版
  • win7桌面和win10桌面
  • linux版flash
  • 禁止Windows 打游戏怎么办
  • cgi linux
  • Unity3D游戏开发培训课程大纲
  • Node.js中的construct构造函数
  • js 获取图片大小
  • jquery和html的关系
  • shell脚本实例精讲
  • Android studio 无法勾选sdk
  • javascript要怎么学
  • 安卓手机管家怎么关闭
  • jQuery ajax中使用confirm,确认是否删除的简单实例
  • 电子税务局怎么添加银行账户信息
  • 如何推进社会治理
  • 小规模纳税人和一般纳税人的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设