文档章节

Input/Output and Command-Line Processing

why_Dk37
 why_Dk37
发布于 2016/12/11 16:46
字数 811
阅读 1
收藏 0

I/O Redirectors

我们熟悉的从I/O重定向有<,>,|,虽然我们知道了这些可以完成差不多90%以上的工作,但是你应该知道bash不只是支持这些。 下面我尝试着完整的列举bash支持的I/O redirector。

cmd1 | cmd2

Pipe; take standard output of cmd1 as standard input to cmd2 . 管道,把cmd1的标准输出作为cmd2的标准输入

> file

Direct standard output to file . 标准输出到文件

< file

Take standard input from file . 从文件获取标准输入

>> file

Direct standard output to file ; append to file if it already exists. 标准输出到文件,如果文件存在则追加到文件结尾。

>| file

Force standard output to file even if noclobber is set.

n >| file

Force output to file from file descriptor n even if noclobber is set.

<> file

Use file as both standard input and standard output. 使用文件作为标准输入输出。

n <> file

Use file as both input and output for file descriptor n .

<< label

Here-document; see text.

n > file

Direct file descriptor n to file .

n < file

Take file descriptor n from file .

n >> file

Direct file descriptor n to file ; append to file if it already exists.

n >&

Duplicate standard output to file descriptor n .

n <&

Duplicate standard input from file descriptor n .

n >&m

File descriptor n is made to be a copy of the output file descriptor.

n <&m

File descriptor n is made to be a copy of the input file descriptor.

&>file

Directs standard output and standard error to file .

<&-

Close the standard input.

>&-

Close the standard output.

n >&-

Close the output from file descriptor n .

n <&-

Close the input from file descriptor n .

n>&word

If n is not specified, the standard output (file descriptor 1) is used. If the digits in word do not specify a file descriptor open for output, a redirection error occurs. As a special case, if n is omitted, and word does not expand to one or more digits, the standard output and standard error are redirected as described previously.

n<&word

If word expands to one or more digits, the file descriptor denoted by n is made to be a copy of that file descriptor. If the digits in word do not specify a file descriptor open for input, a redirection error occurs. If word evaluates to -, file descriptor n is closed. If n is not specified, the standard input (file descriptor 0) is used.

n>&digit-

Moves the file descriptor digit to file descriptor n , or the standard output (file descriptor 1) if n is not specified.

n<&digit-

Moves the file descriptor digit to file descriptor n , or the standard input (file descriptor 0) if n is not specified. digit is closed after being duplicated to n .

上述内容有一些有一些很有用,其他的主要用作系统编程。当然有些我也不是很清楚,姑且暂时记录下来,以便事后回顾。

<< label

Here document.将输入强制作为shell的标准输入,直到只包含label的一行停止。label中的输入就是here-document。如:

cmd << label
  Here Document Content
label

这里的label并不是固定的,可以是EOF,或者是其他的字符,但要成对出现。 here document比较适合在脚本中使用,可以批量的输入命令。比如登录ftp、redis,使用ed修改文件,甚至是发送邮件。

redis

登录redis并获取某个key值。-a指定密码,get是redis的命令,用来获取key值,然后退出exit登录。

redis-cli -a password<<EOF
get key
exit
EOF

ed

下面的脚本需要保存到脚本文件中执行。它接收一个文件参数,删除参数文件中第一行到第一个空行的部分。 1,/^[ ]*$/d,删除从第一行到第一个空行的内容;w把修改写入文件;q退出。

ed $1 << EOF
1,/^[ ]*$/d
w
q
EOF

© 著作权归作者所有

共有 人打赏支持
why_Dk37
粉丝 1
博文 22
码字总数 17584
作品 0
海淀
程序员
地震数据处理软件--SEPlib

地震数据处理软件 SEPlib 由斯坦福大学地球科学学院地球物理系Stanford Exploration Project项目开发 SEPlib is a complete and freely distributed seismic data processing software packa......

seismic
2014/03/11
653
0
Linux批量远程执行命令管理pssh

pssh是一个简单的字符界面并发向多个服务器发送指令进行执行的工具。适合一次性向集群大量服务器发送相同指令(并观察输出) 使用前提 主机连接远程主机可以通过ssh密钥无密码连接 可参见 SS...

李星
2016/02/06
288
0
丢弃的输出(Discard the output)(过滤的输出)

Sometimes you will need to execute a command, but you don't want the output displayed to the screen. In such cases you can discard the output by redirecting it to the file /dev/......

肖鋭
2014/06/01
0
0
UVa 101-The Blocks Problem

【问题描述】 Many areas of Computer Science use simple, abstract domains for both analytical and empirical studies. For example, an early AI study of planning and robotics (STRI......

落叶-归根
2016/05/05
58
0
php cli using STDIN and Piping

http://php.net/manual/en/features.commandline.options.php -r <code> Run PHP <code> without using script tags <?..?> 例: 1. cat xxx.log | php -r 'echo streamgetcontents(STDIN)."......

jims
2016/07/20
22
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

八大包装类型的equals方法

先看其中一个源码 结论:八大包装类型的equals方法都是先判断类型是否相同,不相同则是false,相同则判断值是否相等 注意:包装类型不能直接用==来等值比较,否则编译报错,但是数值的基本类型...

xuklc
32分钟前
1
0
NoSQL , Memcached介绍

什么是NoSQL 非关系型数据库就是NoSQL,关系型数据库代表MySQL 对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗...

TaoXu
昨天
0
0
890. Find and Replace Pattern - LeetCode

Question 890. Find and Replace Pattern Solution 题目大意:从字符串数组中找到类型匹配的如xyy,xxx 思路: 举例:words = ["abc","deq","mee","aqq","dkd","ccc"], pattern = "abb"abc ......

yysue
昨天
0
0
Linux | Redis

写在前面的话 常言道,不作笔记不读书。在下是深有体会啊,所以,跟我一起做下本节的笔记吧,或许多年以后,你一定会感谢今天的你。 安装 在官网的下载页 Redis Download 直接写了在Linux的安...

冯文议
昨天
1
0
NoSQL-memcached

NoSQL介绍 NoSQL叫非关系型数据库。而关系型数据库代表有MySQL。对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很...

ln97
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部