文档章节

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
丢弃的输出(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
Linux批量远程执行命令管理pssh

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

李星
2016/02/06
288
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
Android: Runtime.exec()的陷阱

When Runtime.exec() won't Navigate yourself around pitfalls related to the Runtime.exec() method Summary In this installment of Java Traps, Michael Daconta discusses one new pit......

长平狐
2012/06/20
3.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql 时间格式化

DATE_FORMAT

1713716445
2分钟前
0
0
聊聊flink的PartitionableListState

序 本文主要研究一下flink的PartitionableListState PartitionableListState flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/DefaultOperatorStateBackend.java /*......

go4it
7分钟前
0
0
Micropython教程之TPYBoard开发板制作电子时钟(萝卜学科编程教育)

1.实验目的 1. 学习在PC机系统中扩展简单I/O?接口的方法。 2. 什么是SPI接口。 3. 学习TPYBoard I2C接口的用法。 4. 学习LCD5110接线方法。 5. 设定时钟并将当前时间显示在LCD5110上。 2.所需...

bodasisiter
7分钟前
0
0
js 闭包

闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是 ECMAScript 规范给的定义,如果没有实战经验,很难从定义去理解它。因此,本文不会对闭包的概念...

MrBoyce
12分钟前
0
0
Java B2B2C o2o多用户商城 springcloud架-企业云架构common-service代码结构分析

当前的分布式微服务云架构平台使用Maven构建,所以common-service的通用服务按照maven构建独立的系统服务,结构如下: particle-commonservice: spring cloud 系统服务根项目,所有服务项目...

itcloud
18分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部