Shell - 简明Shell入门09 - 重定向(Redirection)
示例脚本及注释
#!/bin/bash
pwd > 1.log # 输出重定向到指定文件
date 1> 1.log # “>”与“1>”作用相同;覆盖指定文件的原有内容
date >> 1.log # 追加内容到指定文件的末尾
echo "1.log: " `cat 1.log`
echo -e "one\ntwo\nthree" > 2.log
echo "Number of rows:" `wc -l < 2.log` # 输入重定向;统计2.log文件内容的行数
echo "2.log: " `cat 2.log`
echo -e "111\n222\n333" > 3.log
echo "3.log: " `cat 3.log`
wc -l < 3.log > 4.log # 同时重定向输入和输出,从3.log读取输入,然后将输出写入到4.log
echo "4.log - Number of rows:" `cat 4.log`
rm -rf 123 # 确保文件不存在
ls 123 2> 5.log # 错误重定向到指定文件
ls 123 2>> 5.log # 追加内容到指定文件的末尾
echo "5.log: " `cat 5.log`
ls 123 >> 6.log 2>&1 # 将stdout和stderr合并后重定向到指定文件
pwd >> 6.log 2>&1 # 将stdout和stderr合并后重定向到指定文件
echo "6.log: " `cat 6.log`
ls 123 2>> 7.log >> 8.log # 分别重定向到指定文件
pwd 2>> 7.log >> 8.log
echo "7.log: " `cat 7.log`
echo "8.log: " `cat 8.log`
pwd > /dev/null # 屏蔽stdout
ls /root > /dev/null 2>&1 # 屏蔽stdout和stderr
rm -rf [0-9].log
# Here Document
cat << !
abc
123
ABC
!
# 将两个delimiter(这里使用!符号)之间的内容(document) 作为输入传递给command
# ### 标准
# - 标准输入文件(stdin)的文件描述符为0,默认从stdin读取数据;
# - 标准输出文件(stdout)的文件描述符为1,默认向stdout输出数据;
# - 标准错误文件(stderr)的文件描述符为2,默认向stderr中写入错误信息;
#
#
# ### 输出重定向
# - “command > file”:标准输出(stdout)重定向到指定文件,覆盖指定文件的原有内容
# - “command >> file”:标准输出(stdout)重定向到指定文件,追加内容到指定文件的末尾
# - “>”与“1>”作用相同
#
#
# ### 输入重定向
# - “command < file”:从标准输入(stdin)获取内容重定向到从指定文件中获取内容
#
#
# ### 错误重定向
# - “command 2 > file”:标准错误(stderr)重定向到指定文件,覆盖指定文件的原有内容
# - “command 2 >> file”:标准错误(stderr)重定向到指定文件,追加内容到指定文件的末尾
#
#
# ### 合并重定向
# 将stdout和stderr合并后重定向到指定文件
# - “command > file 2>&1”:覆盖指定文件的原有内容
# - “command >> file 2>&1”:追加内容到指定文件的末尾
#
#
# ### Here Document
# - 特殊的重定向方式,用来将输入重定向到一个交互式Shell脚本
# - 作用是将两个delimiter之间的内容(document)作为输入传递给command
# - 开始的delimiter前后的空格会被忽略
# - 结尾的delimiter必须顶格写,前后不能有任何字符,包括空格和 tab 缩进
#
#
# ### “/dev/null”文件
# - 写入到“/dev/null”文件的内容都会被丢弃;
# - 也无法从该文件读取内容;
Shell - 简明Shell入门09 - 重定向(Redirection)的更多相关文章
- Shell - 简明Shell入门
本文以示例和注释的方式,对Shell编程的基本知识点进行了总结和回顾,所有脚本均已做了基本的调试和验证. Shell - 简明Shell入门 01 - 第一个脚本 脚本的定义.执行方法以及echo命令 ...
- Shell - 简明Shell入门01 - 第一个脚本(HelloShell)
示例脚本及注释 #!/bin/bash echo "hello shell!" # 打印字符串"hello shell!" echo "Date: & ...
- Shell - 简明Shell编程
本文是对Shell脚本编程的总结和回顾,所有涉及的脚本均已做了基本的调试和验证. [toc] 测试环境信息 [root@CentOS7 ~]# uname -a Linux CentOS7 3.10. ...
- Shell - 简明Shell入门15 - 调试(Debug)
示例脚本及注释 #!/bin/bash -x for filename in t1 t2 t3 do touch $filename.txt echo "Create new file: $ ...
- Shell - 简明Shell入门14 - 操作符(Operator)
示例脚本及注释 #!/bin/bash echo "No code, just some comments." # ### 通配符 # * 代表任意(0个或多个)字符 # ? 代表 ...
- Shell - 简明Shell入门13 - 用户输入(UserInput)
示例脚本及注释 1 - arguments #!/bin/bash if [ -n "$1" ];then # 验证参数是否传入 echo "The first para ...
- Shell - 简明Shell入门12 - 定制输出(ColorOutput)
示例脚本及注释 #!/bin/bash echo -e "\033[32m" # 设置输出属性,绿色字体 echo "This is a test!" echo ...
- Shell - 简明Shell入门11 - 调用脚本(CallTheScript)
示例脚本及注释 主脚本: CallTheScript.sh #!/bin/bash . ./11-subscript.sh # 调用其他脚本;注意点号"."和文件路径之间有一空格; ...
- Shell - 简明Shell入门08 - 函数(Function)
示例脚本及注释 #!/bin/bash function Check() # 使用function定义函数 { Say # 通过函数名直接调用函数 if test $1 then return 0 # ...
随机推荐
- hdu 1540(线段树区间合并)
题目链接:传送门 参考文章:传送门 题意:n个数字初始连在一条线上,有三种操作, D x表示x号被摧毁: R 表示恢复剩下的通路 Q表示查询标号为x所在的串的最长长度. 思路:线段树的区间合并. #i ...
- Oracle中根据当前时间和活动类型去数据库查询活动id
活动类型默认是1,代表邀请好友 select * from t_invite_activityinfo twhere sysdate >= t.begintime and sysdate< ...
- Curator之Recipes之锁
转载自:https://blog.csdn.net/kiss_the_sun/article/details/50221463 参考文档: http://ifeve.com/java_lock_see ...
- Sql Server用户名和登录名的关系总结
以前经常被SQL Server中的用户名和登录名搞迷糊,因为用sa(登录名)就搞定一切东西了,当然这会存在一些安全隐患.网上的文章也貌似讲得很好,但还是不明白.今天决心把这个问题弄明白.mashall ...
- day37(类加载器)
类的加载器:将class文件加载到JVM中执行这个文件. Java中将类加载器分成三类: 引导类加载器: JAVA_HOME/jre/lib/rt.jar | 扩展类加载器: JAVA ...
- DML DDL
DDL 1.SQL分为5大类: DDL:数据定义语言 DCL:数据控制语言 DML:数据操纵语言 DTL:数据事务语言 DQL:数据查询语言 2.DDL(data definition languag ...
- Hdu2204 Eddy's爱好 2017-06-27 16:11 43人阅读 评论(0) 收藏
Eddy's爱好 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Subm ...
- spark图解
导语 spark 已经成为广告.报表以及推荐系统等大数据计算场景中首选系统,因效率高,易用以及通用性越来越得到大家的青睐,我自己最近半年在接触spark以及spark streaming之后,对spa ...
- JBoss 系列四十九:JBoss 7/WildFly 中端口使用列表
JBoss 7中端口使用列表 JBoss 7中所有配置都在一个文件中(standaone*.xml, domain.xml),和之前的JBoss相比JBoss 7用到的端口变少,我们将以表格的形式列出 ...
- inline&friend&操作符重载
(1).inline:是一种以空间换时间的做法省去调用函数的额外开销,提高程序的运行效率,它对于编译器而言只是一种建议 (2).友元函数:是可以直接访问类的private成员的非成员函数.它是定义在类 ...