SHELL脚本攻略(学习笔记)--2.1 cat
2016-09-28 12:43
260 查看
cat命令
输出一个或多个文件的内容。cat [OPTION]... [FILE]...
选项说明
-n:显示所有行的行号
-b:显示非空行的行号
-E:在每行行尾加上$符号
-T:将TAB符号输出为"^I"
-s:压缩连续空行为单个空行
cat还有一个重要功能,允许将分行键入的内容输入到一个文件中去。
首先测试<<eof,这表示将键入的内容追加到标准输入stdin中(不是从标准输入中读取), eof可以随便使用其他符号代替。
[root@xuexi tmp]# cat <<eof > abc.com > eof abc.com
再测试<eof,发现没有输入的机会,并且此时只能使用eof作为符号,EOF或其他任何都不可以。因为<eof是读取标准输入,会将eof当成输入文件处理。所以一定要使用<<eof,这表示here document,而两个eof正是document的起始和结束标志。
[root@xuexi tmp]# cat <eof
[root@xuexi tmp]# cat <eox -bash: eox: No such file or directory [root@xuexi tmp]# cat <EOF -bash: EOF: No such file or directory
再进一步测试<<eof的功能,将键入的内容重定向到文件而非标准输入中。这时有两种书写方案:
第一种方案:>>filename<<eof或>filename<<eof
[root@xuexi ~]# cat >>/tmp/test.txt<<EOF # 输入到这里按回车键继续输入下一行 > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 按回车输入下一行 > yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy # 按回车输入下一行 > zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz # 按回车输入下一行 > EOF # 顶格写EOF结束输入
第二种方案:<<eof>filename或<<eof>>filename
[root@xuexi tmp]# cat <<eof>log.txt > abc.com > eof
两种方案结果是一样的,且总是使用<<eof,只不过所写的位置不同而已,不管写在哪个位置,它都表示将键入的内容追加到标准输入。然后再使用>filename或>>filename控制重定向的方式,将标准输入中的内容重定向到filename文件中。
相关文章推荐
- SHELL脚本攻略(学习笔记)--1.3 多命令逻辑执行顺序
- [linux-shell]脚本攻略学习笔记
- shell脚本攻略学习笔记(一)小试牛刀
- shell脚本攻略学习笔记(九)管理重任
- shell脚本攻略学习笔记(八)当个好管家
- shell脚本学习笔记(一)闹钟的源码
- Shell脚本学习笔记-系统管理
- Shell脚本学习笔记(五)--函数
- Shell脚本学习笔记(九)--文字和图形接口
- Shell脚本学习笔记(四)--流程控制
- Shell脚本学习笔记(八)--进程管理和工作控制
- shell脚本学习笔记(三)mysql与ARP表的绑定源码
- Shell脚本学习笔记(五)--函数
- 学习shell 与shell脚本 学习笔记
- Shell脚本学习笔记(六)--转向与陷阱
- Shell脚本学习笔记(四)--流程控制
- Shell脚本学习笔记-语法
- shell脚本学习笔记
- Shell脚本学习笔记(二)--变量
- Shell脚本学习笔记(七)--sed和awk