文档章节

Input/Output and Command-Line Processing

why_Dk37
 why_Dk37
发布于 2016/12/11 16:46
字数 811
阅读 1
收藏 0
点赞 0
评论 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 ⋅ 0

Linux批量远程执行命令管理pssh

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

李星 ⋅ 2016/02/06 ⋅ 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

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 ⋅ 0

关于Window的Dos Batch 文件编写的常识

Redirect "all" output to a single file: Run: test.bat > test.txt 2>&1 and you'll get this text on screen (we'll never get rid of this line on screen, as it is sent to the Consol......

小骏骏 ⋅ 2014/08/05 ⋅ 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 ⋅ 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 ⋅ 0

文件名不能包含哪些特殊字符?

C语言工程中新增一个文件,文件名含有parentheses(括号)就导致链接不过了。我找了半天把括号改为underscore 后就好了。于是就想在这里问下大家究竟哪些字符不能出现在文件名里。 下面是我搜到...

雨下路人 ⋅ 2013/05/23 ⋅ 2

Debug Caffe with GDB on Ubuntu

In this post I’ll show you how to debug and set break-point in caffe on Ubuntu with GDB , the GNU Project debugger. First of all you should install and build caffe from source,......

李亚鑫 ⋅ 2017/11/17 ⋅ 0

Linux基础命令:grep 必知必会

grep(Global regular expression print) grep searches the input files for lines containing a match to a given pattern list. When it finds a match in a line, it copies the line to ......

skypeGNU1 ⋅ 2016/03/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Kubeflow实战系列:利用TFJob导出分布式TensorFlow模型

介绍 本系列将介绍如何在阿里云容器服务上运行Kubeflow, 本文介绍如何使用TfJob导出分布式模型训练模型。 第一篇:阿里云上使用JupyterHub 第二篇:阿里云上小试TFJob 第三篇:利用TFJob运行...

全部原谅 ⋅ 19分钟前 ⋅ 0

007. 深入JVM学习—老年代

老年代空间的主要目的是用于存储由Eden发送来的对象,一般在经历好几次“Minor GC”还会保存下来的对象,才会被复制到老年代,这样就可以存放更多的对象,同时在老年代中执行GC的次数也相对较...

影狼 ⋅ 20分钟前 ⋅ 0

常见的一些C#开源框架或者开源项目

原:https://blog.csdn.net/qq_27825451/article/details/70666044 Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更......

whoisliang ⋅ 21分钟前 ⋅ 0

设计模式基本原理

刚开始接触编程这行的时候看过设计模式,当时感觉学这些模式没有太大的用处,当时也看不太懂。但是随着慢慢接触这一行,经过一段时间的编程以后,再回过头来看设计模式,发现设计模式的确是太...

王子城 ⋅ 25分钟前 ⋅ 0

阿里云全面支持IPv6!一文揽尽4位大咖精彩演讲

摘要: 自从去年11月以来,阿里巴巴高度重视数据中心的网络改造、云产品改造、应用及网络改造等多个维度,经过半年以来的建设,阿里云已经完成了域名解析等关键产品的分析,现在阿里云已经完...

传授知识的天使 ⋅ 35分钟前 ⋅ 0

windows Android sdk 配置

1、下载Android SDK,点击安装,直接默认路径即可! 下载地址:http://developer.android.com/sdk/index.html 2、默认路径安装后,安装完成,开始配置环境变量。 3、打开计算机属性——高级系...

阿豪boy ⋅ 38分钟前 ⋅ 0

bash shell script 简明教程

User <--> bash <--> kernel shell is not kernel or part of kernel various shells: tcsh, csh, bash, ksh find the using shell: echo $SHELL find all the shells: cat /etc/shells what......

mskk ⋅ 40分钟前 ⋅ 0

Service Mesh简史

William Morgan Service Mesh是一个相当新的概念,讲它的“历史”似乎有些勉强。就目前而言,Service Mesh已经在部分企业生产环境中运行了超过18个月,它的源头可以追溯到2010年前后互联网公...

好雨云帮 ⋅ 41分钟前 ⋅ 0

10个免费的服务器监控工具

监控你的WEB服务器或者WEB主机运行是否正常与健康是非常重要的。你要确保用户始终可以打开你的网站并且网速不慢。服务器监控工具允许你收集和分析有关你的Web服务器的数据。 有许多非常好的服...

李朝强 ⋅ 53分钟前 ⋅ 0

压缩工具之zip-tar

zip 支持目录压缩。使用yum安装zip包,使用yum安装unzip包 zip 1.txt.zip 1.txt #将1.txt文件压缩,新生成的压缩文件为1.txt.zip,原文件保留 zip -r 123.zip 123/ #-r对目录操作。将123/目录...

ZHENG-JY ⋅ 53分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部