位置: 编程技术 - 正文

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)

  • 应税劳务的主要成本包括
  • 增值税留抵退税是什么意思
  • 工厂道路设计图
  • 季度申报,其他收益科目是怎样的科目
  • 购买办公用品为什么不能用现金
  • 非营利组织注销流程
  • 企业会计准则季报报送哪几个报表
  • 企业所得税包含哪些税种
  • 已抵扣发票冲红会计分录
  • 广告策划费会计分录
  • 非货币性资产交换固定资产清理
  • 企业实际发生的公益性捐赠支出
  • 购买的发票进项税和成本怎么转出
  • 城市生活垃圾处理收费管理办法
  • 确认委托代销收入会计分录
  • 外聘人员需要扣个人所得税吗
  • 企业转企业对公账户
  • 事业单位乱报销出纳怎么办?
  • 福利费不需要发票记账吗
  • 年度账套怎么结转下一年
  • 企业三废处理方案
  • 股东投资设备一定要评估吗
  • 销售费用广告费存在哪些问题
  • 以产品分成方式销售商品
  • 如何在Windows 11上卸载更新
  • bios中英文对照表图新版
  • 装修公司开专票要交几个点
  • 在建工程的施工方案可以外传吗
  • 如何批量更改多个excel内容
  • mac怎么转到苹果系统
  • 网页提示摄像头未授权
  • nvsvc.exe - nvsvc是什么进程 有什么用
  • 所得税季度预缴怎么算
  • PHP:session_regenerate_id()的用法_Session函数
  • 布鲁克斯的故事
  • 无法偿还应付账款账务处理
  • nodejs怎么更新版本
  • laravel视频教程
  • 物业公司购买空调合法吗
  • ip6tables-restore命令 还原ip6tables表
  • 微擎框架安装教程
  • 个人给境外公司付款
  • python分割语句
  • 学电脑的好网站
  • 几种财务自由
  • 企业重组的特殊性税务处理例题
  • 什么是税金?
  • 何谓应该是什么意思
  • sql2005 数据同步方法
  • mysql左连接和右连接语法
  • 发出商品的增值税
  • 在工资模块中进行各工资类别间的汇总
  • 汇算清缴期间发放的工资
  • 一般纳税人筹建期
  • 工程结算价超过合同价10%
  • 工资扣税是减去五险一金吗
  • 获取sql
  • mysql 5.7.33安装
  • win8.1开机速度慢
  • winxp u盘拒绝访问
  • xbox无法连接无线网络
  • iexplores.exe是什么病毒
  • xp开始界面
  • ubuntu怎么用linux
  • winxp中网桥Bridge功能概述及配置注意事项
  • winxp如何设置文件共享
  • vsftpd 虚拟用户权限
  • explorer.exe进程文件
  • win10系统如何设置不休眠
  • linux安装pip2
  • win7系统鼠标指针形状介绍
  • shell脚本while true循环
  • nodejs获取get请求参数
  • Android Fragment学习笔记(2) ----使用ListFragment显示列表(上)
  • Android性能优化的方面12个
  • java script
  • 第十三个人
  • 广东省国家税务总局稽查局局长
  • 税额差怎么计算
  • 在深圳月薪8000是什么水平
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设