博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bash 重定向
阅读量:2243 次
发布时间:2019-05-09

本文共 1909 字,大约阅读时间需要 6 分钟。

当执行命令之前,它的输入和输出可以使用由shell解释的特殊符号进行重定向。重定向允许命令“文件句柄被复制,打开,关闭,作出涉及到不同的文件,并可以更改命令读取和写入文件。重定向也可用于修改的文件句柄在当前shell执行环境。下列重定向操作符可能先于或一个简单的命令中的任何地方出现或可能遵循的命令。重定向在他们出现,从左至右的顺序处理。

每个可由一个文件描述符号码前面重定向可以代替由表单{VARNAME}的一个字之前。在这种情况下,对于每一个重定向操作符除外>& - 和<& - ,shell将分配一个文件描述符大于或等于10并指定为VARNAME。 如果 >&- 或<&-是{varname}的前面,varname定义的文件描述符被关闭。

在以下的说明中,如果文件描述符被省略,并且重定向操作符的第一字符<,重定向指的是标准输入(文件描述符0)。如果重定向操作符的第一个字符是>,重定向指的是标准输出(文件记述器1)。

按照下面的描述中,重定向操作符的话,除非另有说明,受到括号扩展,波浪线扩展,参数和变量扩展,命令替换,算术扩展,引用删除,路径名扩展,和分词。如果扩展为多个单词,bash报错。

/dev/fd/fd

如果fd是一个有效的整数,文件描述符fd是重复的。
/dev/stdin
文件描述符0被复制。
/dev/stdout
文件描述符1被复制。
/dev/stderr
文件描述符2是重复的。
/dev/tcp/host/port
如果host是一个有效的主机名或Internet地址,port是一个整数端口号或服务名,bash将试图打开相应的TCP套接字。
/dev/udp/host/port
如果host是一个有效的主机名或Internet地址,port是一个整数端口号或服务名,bash将试图打开相应的UDP套接字。

使用文件重定向描述符大于9应小心使用,因为它们可能与文件发生冲突的描述符外壳内部使用。

请注意,EXEC内置命令可以重定向采取在当前shell.

重定向输入

如果该文件不存在则创建;如果它存在则截断其大小为零。
[n] < word
重定向输出
如果该文件不存在则创建;如果它存在则截断其大小为零。
[n] > word

追加重定向的输出

以这种方式输出重定向使他的名字从结果word扩展被打开并追加对文件描述符n,或者如果没有指定n标准输出(文件描述符1)的文件。如果该文件不存在则创建它。
[n]>>word

重定向标准输出和标准错误

此构造允许两个标准输出(文件描述符1)和标准误差输出(文件描述符2)被重定向到其名称是字的扩展的文件。
&>word
>&word
>word 2>&1
当使用第二种形式,词可能不会扩大为数字或 - 。如果是这样,其他的重定向运算符适用(见下文复制文件描述符)出于兼容性原因。

追加标准输出和标准错误

word 2>&1

重定向文档

<<[-]word
here-document
delimiter
无参数和变量扩展,命令替换,算术扩展或者路径扩展是在执行字。如果word中任何字符被引用,分隔符是引用删除对词的结果,而在此文档中的行不会被扩展。如果字是带引号的,在这里文档中的所有行受到参数扩展,命令替换和算术扩展,字符序列\ <换行符>被忽略,\必须使用引用字符\,$,和`。

如果重定向操作符是<< - ,那么所有领先的制表符从输入行和包含行分隔符剥离。这使得这里的文档shell脚本中以自然的方式缩进。这个词经过括号扩展,波浪线扩展,参数和变量扩展,命令替换,算术扩展和引用删除。不执行路径名扩展和分词。其结果是作为一个单一字符串的标准输入命令提供。

字符串

在此文件的一个变种,
复制文件描述符
[n]<&word
用于复制的输入文件描述符。如果字扩展为一个或多个数字,用n表示的文件描述符被制成该文件描述符的副本。如果word中的数字并未指定的文件描述符输入,将产生一个重定向错误。如果字计算结果为 - ,文件描述符n关闭。如果没有指定n,将使用标准输入(文件描述符0)被使用。

移动文件描述符

[n]<&digit-
移动文件描述符的数字文件描述符n,或者如果没有指定n标准输入(文件描述符0)。数位被复制到n后关闭。
[n]>&digit-
移动文件描述符的数字文件描述符N,或者如果没有指定n标准输入(文件描述符0)。数位被复制到n后关闭。

打开文件描述符阅读和写作

[n]<>word
导致其名称是单词的扩张被打开供读取和文件描述符n写入,或者文件描述符0,如果没有指定n的文件。如果该文件不存在,则创建它。

转载地址:http://gjwdb.baihongyu.com/

你可能感兴趣的文章
关于Oracle数据库优化的几点总结
查看>>
69道Spring面试题和答案
查看>>
40个Java多线程问题总结
查看>>
Oracle数据库面试题
查看>>
java面试中的智力题
查看>>
本地如何连接hbase数据库
查看>>
Maven出错-Missing artifact org.apache.openejb:openejb-core:jar:4.1.0-SNAPSHOT:test
查看>>
dubbo配置文件xml校验报错
查看>>
eclipse生成export生成jar详解
查看>>
oracle 模糊查询忽略大小写
查看>>
Java项目导出可运行的jar文件
查看>>
Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析),兼容Windows和Linux
查看>>
JAVA读取PROPERTIES配置文件
查看>>
Linux中执行shell脚本的4种方法总结
查看>>
BufferedInputStream(缓冲输入流)详解
查看>>
修改linux文件权限命令:chmod
查看>>
Linux vi/vim编辑器常用命令与用法总结
查看>>
如何使用Git Bash Here,将本地项目传到github上
查看>>
eclipse git控件操作 回退到历史提交 重置 删除(撤销)历史的某次提交
查看>>
Oracle | 给表和字段添加注释
查看>>