位置: 编程技术 - 正文

关于shell命令的定向输出 2>&1(以下关于shell脚本参数)

编辑:rootadmin

mycommand >mylog.txt 2>&1 应该是最经典的用法了。

推荐整理分享关于shell命令的定向输出 2>&1(以下关于shell脚本参数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:以下关于shell脚本参数说法错误的是,下列关于shell参数中错误的是,关于shell描述错误的是,关于shell命令的输入输出以下说法正确的是,关于shell描述错误的是,关于shell命令的输入输出以下说法正确的是,关于shell描述错误的是,关于shell的说法,内容如对您有帮助,希望把文章链接给更多的朋友!

命令的结果可以通过“%>”的形式来定向输出,%表示文件描述符:1为标准输出stdout、2为标准错误stderr。系统默认%值是1,也就是“1>”,而1>可以简写为>,也就是默认为>。stdout的默认目标是终端,stderr的默认目标为也是终端。我们在批处理中执行: echo text >result.txt ,我们就可以在屏幕上会看到 echo text 1>result.txt ,即是这个道理。

其中&需要直接与重定向符号结合使用。

参考:1、 stop myservices >>result 2>&1

2、隐藏程序输出结果net stop myservices >nul 2>nul

微软关于重定向的文章: 使用命令重定向操作符更新日期: //使用命令重定向操作符

可以使用重定向操作符将命令输入和输出数据流从默认位置重定向到其他位置。输入或输出数据流的位置称为句柄。

下表将列出可用的句柄。

句柄句柄的数字代号描述

STDIN

0

键盘输入

STDOUT

1

输出到命令提示符窗口

STDERR

2

错误输出到命令提示符窗口

UNDEFINED

关于shell命令的定向输出 2>&1(以下关于shell脚本参数)

3-9

句柄由应用程序单独定义,它们是各个工具特有的

数字 0 到 9 代表前 个句柄。可以使用命令 Cmd.exe 运行程序,并对该程序前 个句柄中的任何一个句柄进行重定向。要指定要用的句柄,请在重定向操作符之前键入该句柄的数字。如果未定义句柄,则默认的 < 重定向输入操作符是 0,而默认的 > 重定向输出操作符是 1。键入 < 或 > 操作符之后,必须指定数据的读写位置。可以指定文件名或其他现有的句柄。

要指定重定向到现有句柄,请使用与 (&) 字符,后面接要重定向的句柄号(即 &句柄号)。例如,下面的命令可以将句柄 2(即 STDERR)重定向到句柄 1(即 STDOUT):

2>&1

下表列出了可用于重定向输入和输出数据流的操作符。

重定向操作符描述

>

将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄。

<

从文件而不是从键盘或句柄读入命令输入。

>>

将命令输出添加到文件末尾而不删除文件中已有的信息。

>&

将一个句柄的输出写入到另一个句柄的输入中。

<&

从一个句柄读取输入并将其写入到另一个句柄输出中。

|

从一个命令中读取输出并将其写入另一个命令的输入中。也称作管道。

默认情况下,可以从键盘将命令输入(即 STDIN 句柄)发送到 Cmd.exe,然后由 Cmd.exe 将命令输出(即 STDOUT 句柄)发送到命令提示符窗口。

重定向输入 (<)

要通过键盘将输入重定向到文件或设备,请使用 < 操作符。例如,要从 File.txt 获取 sort 命令的输入,请键入:

sort<file.txt

File.txt 的内容将以字母顺序列表的方式显示在命令提示符窗口中。

< 操作符可以打开具有只读访问权限的指定文件名。因此,不能在使用该操作符时向文件中写入信息。例如,如果以 <&2 启动程序,则所有试图读取句柄 0 的操作都将失败,因为句柄 2 最初是以只写访问方式打开的。

注意

&#;

0 是 < 重定向输入操作符的默认句柄。

重定向输出 (>)

几乎所有的命令都将输出发送到命令提示符窗口。即使将输出发送到驱动器或打印机的命令也会在命令提示符窗口显示消息和提示。

要将输出从命令提示符窗口重定向到文件或设备,请使用 > 操作符。可以在许多命令中使用该操作符。例如,要将 dir 输出重定向到 Dirlist.txt,请键入:

dir>dirlist.txt

如果 Dirlist.txt 不存在,Cmd.exe 将创建该文件。如果 Dirlist.txt 存在,Cmd.exe 将使用 dir 命令的输出替换文件中的信息。

要运行 netsh routing dump 命令,然后将输出发送到 Route.cfg,请键入:

netsh routing dump>c:route.cfg

> 操作符可以打开具有只写访问权限的指定文件。因此,不能使用该操作符读取文件。例如,如果使用重定向操作符 >&0 启动程序,则写入句柄 1 的所有尝试操作都将失败,因为句柄 0 最初是以只读访问方式打开的。

注意

&#;

1 是 > 重定向输出操作符的默认句柄。

复制句柄

重定向操作符 & 可以将输出或输入从一个指定句柄复制到另一个指定的句柄。例如,要将 dir 输出发送到 File.txt 并将错误输出发送到 File.txt,请键入:

dir>c:file.txt 2>&1

复制句柄时,可以复制该句柄原状态的所有特性。例如,如果一个句柄具有只读访问的属性,则该句柄的所有副本都具有只读访问属性。不能将一个具有只读访问属性的句柄复制到另一个具有只写访问属性的句柄。

使用 & 操作符重定向输入和副本

要将重定向输入操作符 (<) 与复制操作符 (&) 结合使用,指定的文件必须已经存在。如果输入文件存在,Cmd.exe 将以只读方式打开该文件,然后将文件包含的字符作为输入发送到此命令(如同从键盘输入一样)。如果指定了句柄,Cmd.exe 将指定的句柄复制到系统现有的句柄中。

例如,要以句柄 0 输入读取(即 STDIN)的方式打开 File.txt,请键入:

<file.txt

要打开 File.txt,并在内容排序后将输出发送到命令提示符窗口(即 STDOUT),请键入:

sort<file.txt

要查找 File.txt,然后将句柄 1(即 STDOUT)和句柄 2(即 STDERR)重定向到 Search.txt,请键入:

findfile file.txt>search.txt 2<&1

要以句柄 0 输入读取(即 STDIN)的方式复制用户定义的句柄 3,请键入:

<&3

使用 & 操作符重定向输出和复制

如果将输出重定向到文件且指定了现有的文件名,Cmd.exe 将以只写方式打开文件并覆盖该文件内容。如果指定了句柄,Cmd.exe 将文件复制到现有句柄中。

要将用户定义的句柄 3 复制到句柄 1,请键入:

>&3

要将包括句柄 2(即 STDERR)的所有输出从 ipconfig 命令重定向到句柄 1(即 STDOUT),然后将输出重定向到 Output.log,请键入:

ipconfig.exe>>output.log 2>&1

使用 >> 重定向操作符附加输出

要从命令中将输出添加到文件末尾而不丢失文件中已存在的任何信息,请使用两个连续的大于号(即 >>)。例如,使用下列命令可以将 dir 命令生成的目录列表附加到 Dirlist.txt 文件:

dir>>dirlist.txt

要将 netstat 命令的输出附加到 Tcpinfo.txt 的末尾,请键入:

netstat>>tcpinfo.txt

使用管道操作符 (|)

管道操作符 (|) 可以提取一个命令的输出(默认情况下是 STDOUT),然后将其定向到另一个命令的输入(默认情况下是 STDIN)中。例如,使用下面的命令可以对目录进行分类:

dir | sort

在本例中,将同时启动两个命令,但随后 sort 命令会暂停,直到它接收到 dir 命令的输出为止。sort 命令使用 dir 命令的输出作为输入,然后将输出发送到句柄 1(即 STDOUT)。

合并带重定向操作符的命令

通过合并带有其他命令和文件名的筛选器命令,可以创建自定义命令。例如,可以使用以下命令存储包含“LOG”字符串的文件名:

dir /b | find "log" loglist.txt

dir 命令的输出是通过 find 筛选器命令进行发送的。包含字符串“LOG”的文件名作为文件名列表(例如,NetshConfig.log、Logdat.svd 和 Mylog.bat)存储在文件 Loglist.txt 中。

要在相同命令中使用多个筛选器,请使用管道 (|) 分隔筛选器。例如,下面的命令将搜索 C 盘上的每个目录以查找包含“LOG”字符串的文件名,并且在命令提示符窗口中每次显示一屏:

dir c: /s /b | find "log" | more

利用管道 (|) 可以对 Cmd.exe 进行定向,使其通过 find 筛选器命令发送 dir 命令输出。find 命令只选择包含字符串“LOG”的文件名。more 命令可以显示 find 命令选择的文件名(在命令提示符窗口中每次显示一屏)。有关筛选器命令的详细信息,请参阅使用筛选器。

批处理程序中的“多线程”处理代码 如下内容将简单举例,在WINDOWS下使用批处理做多进程并发,以达到多线程的效果。例:需要PING..0.1到..0.的所有IP地址,并将是否能PING通的

使用FTP下载目录,即FTP命令批量自动下载的bat文件 FTP不支持目录的下载,不过FTP命令提供了mget命令,允许多文件下载,但每下载一个文件都需要确认,不能自动完成。本文主要介绍使用批处理,结合FTP

用DOS命令判断磁盘分区是否为NTFS格式 一同事问起,如何使用命令判断磁盘是否是NTFS格式,以便进行进一步执行相关命令操作,如转换磁盘格式或设置文件/文件夹安全权限。第一反应,可

标签: 以下关于shell脚本参数

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

上一篇:用批处理实现映射盘网络盘为固定盘符,请更改冲突的硬盘盘符(编写批处理)

下一篇:批处理程序中的“多线程”处理代码(批处理命令是什么语言)

  • 个税必须每个人交吗
  • 增值税附征怎么计算
  • 印花税科目会计分录
  • 所得税率率
  • 开票人和复核人收款人能是一个人吗
  • 资本公积转增资本的要求
  • 个体工商户还没有使用怎么注销
  • 超市的库存商品分类混乱怎么看出来的
  • 政府回购安置房几种模式
  • 企业买车算固定收入吗
  • 现金流量补充表的编制
  • 应付票据和应付债券
  • 影响年初未分配利润的事项
  • 个税返还手续费奖励员工需要交个税吗
  • 甲公司自2018年3月1日开始自行研发一款新兴产品
  • 融资租赁业务的账务处理
  • 境外企业所得税税率
  • 待摊费用可以转入固定资产吗
  • 外商投资企业退出条件
  • 以无形资产投资入股缴纳哪些税收
  • 小规模纳税人销售货物税率是多少
  • 所税税汇算补交上一年度税金如何做账务处理?
  • 哪些费用可以计入待摊费用
  • 营改增后向境外提供有偿服务是否需要缴纳增值税?
  • 作废的发票还需要装订在凭证里吗
  • 小规模纳税人代收水电费税率
  • 为什么纳税人不是负税人
  • 消费满额赠礼
  • 对公给个人转账可以写成什么
  • 小规模纳税人的专票可以抵税吗
  • 如何预防计算机病毒的方法
  • 税务局返还的手续费需开发票吗
  • pps影音怎么看电视直播
  • 采购物资发生什么费用
  • 员工宿舍装宽带
  • 详解Yii2 定制表单输入字段的标签和样式
  • 免费开源的图片app
  • yii框架教程
  • 营业额增长率公式
  • JavaScript基础_1
  • css page-break-after
  • 公司总人数和上社保人数
  • 确认递延所得税资产时,应估计相关可抵扣
  • phpcms v9用户手册
  • 一般纳税人第一次申请发票
  • 预计表示什么意思
  • 注册资金认缴和实缴的法律风险
  • 小规模纳税人应交增值税明细科目
  • 在SQL Server中使用存储过程的优点包括
  • 个人独资企业怎么交个人所得税
  • 利息收入是一级科目还是
  • 营业外收支的账户有哪些
  • 个税手续费返还比例
  • 公司购买的商业保险如何使用
  • 土地的入账科目
  • 人工费怎么核算
  • 车辆保险费计入现金流量表哪里
  • 工会经费返还属于什么收入
  • 负数发票要给税务局吗
  • 如何开具发票?
  • 建筑施工企业中,负责编制
  • 行政事业单位经济责任审计的主要内容
  • 未取得合法支付凭据和与本单位无关的收入
  • rhel7.5重置密码
  • centos6.5共享文件夹
  • 如果不用2b橡皮擦2b铅笔 能扫的出来吗
  • win8玩英雄联盟fps低怎么办
  • centos 3
  • 安装fedora33
  • win102021年1月大更新
  • WIN10系统崩溃如何自救?
  • window10系统连接wifi
  • cocos2dx环境搭建
  • js判断密码强弱
  • jquery时间戳转换日期格式
  • JavaScript的函数定义
  • android activity finish
  • 哪些保险有免赔额
  • 虚假新闻造成的真实伤害
  • 中国经济行业排名
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设