shell中的cat和文件分界符(<<EOF) (转)
原文地址: http://blog.csdn.net/mosesmo1989/article/details/51123257
在shell中,文件分界符(通常写成EOF,你也可以写成FOE或者其他任何字符串)紧跟在<<符号后,意思是分界符后的内容将被当做标准输入传给<<前面的命令,直到再次在独立的一行遇到这个文件分界符(EOF或者其他任何字符,注意是独立一行,EOF前面不能有空格)。通常这个命令是cat,用来实现一些多行的屏幕输入或者创建一些临时文件。
1、最简单的用法
root@ribbonchen-laptop:~#cat<<EOF
> ha
> haha
> hahaha
> EOF
输出:
ha
haha
hahaha
2、把输出追加到文件
root@ribbonchen-laptop:~#cat<<EOF>out.txt
> ha
> haha
> hahaha
> EOF
root@ribbonchen-laptop:~#cat out.txt
ha
haha
hahaha
3、换一种写法
root@ribbonchen-laptop:~#cat>out.txt<<EOF
> ha
> haha
> hahaha
> EOF
root@ribbonchen-laptop:~#cat out.txt
ha
haha
hahaha
4、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束
root@ribbonchen-laptop:~#cat>filename
ha
haha
hahaha
root@ribbonchen-laptop:~#cat filename
ha
haha
hahaha
下面的脚本实现了一个简单的菜单功能:
#!/bin/bash
MYDATE=`date+%d/%m/%Y`
THIS_HOST=`hostname`
USER=`whoami`
while :
do
clear
cat<<EOF
_______________________________________________________________
User:$USER Host:$THIS_HOST DATE:$MYDATE
_______________________________________________________________
1:List files in currentdir
2:Use the vi editor
3:See who is on thesystem
H:Help sreen
Q:Exit Menu
_______________________________________________________________
EOF
echo -e -n "\tYour Choice [1,2,3,H,Q]>"
read CHOICE
case $CHOICE in
1) ls
;;
2) vi
;;
3) who
;;
H|h)
cat<<EOF
This is the help screen,nothing here yet to help you!
EOF
;;
Q|q) exit 0
;;
*) echo -e "\t\007unknown user response"
;;
esac
echo -e -n "\tHit the return key to continue"
read DUMMY
done
shell中的cat和文件分界符(<<EOF) (转)的更多相关文章
- shell中的cat和文件分界符(<<EOF)
在shell中,文件分界符(通常写成EOF,你也可以写成FOE或者其他任何字符串)紧跟在<<符号后,意思是分界符后的内容将被当做标准输入传给<<前面的命令,直到再次在独立的一行 ...
- 在bash shell中使用getfattr查看文件扩展属性
getfattr用法 用于获取文件扩展属性,返回一系列键值对,参考Linux Man Page. 常用OPTIONS -n name, --name=name Dump the value of th ...
- shell中通过sed替换文件中路径
通常sed指令修改行内容时使用:sed -i " 9 s/^.*/"type in what you want modified!"/" 其中"typ ...
- 对于Linux中文件描述符的疑问以及解决
问题 每次web服务器或者是几乎所有Linux服务器都需要对文件描述符进行调整,我使用ulimit -n来查看当前用户的最多能打开的文件,默认设置的是1024个,但是系统运行起来以及开启一些简单的 ...
- 【Shell脚本学习指南笔记】重定向文件描述符 2>&1
如: make > results 2>&1 重定向 > results让文件描述符1(标准输出)作为文件results,接下来的重定向2>&1有两个部分.2& ...
- Shell中bash的特性小结
Shell: 用户与操作系统之间完成交互式操作的一个接口程序,为用户提供简化了的操作:上世纪的70年代中期在贝尔实验室,Bourne位Unix开发了一个shell程序Bourne Shell,简称sh ...
- exec操作文件描述符
exec命令可以用来替代当前shell:换句话说,并没有启动子shell.使用这一命令时任何环境都将被清除,并重新启动一个shell. 它的一半形式为: exec command 其中,command ...
- shell学习(17)- shell中2>&1的解释及输入输出重定向
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默 ...
- Unix系统编程()复制文件描述符
Bourne shell的IO重定向语法2>&1,意在通知shell把标准错误(文件描述符2)重定向到标准输出(文件描述符1).因此下列命令将把标准输出和标准错误写入result.log ...
随机推荐
- Linux Shell 程序调试
Linux Shell 程序调试 Shell程序的调试是通过运行程序时加入相关调试选项或在脚本程序中加入相关语句,让shell程序在执行过程中显示出一些可供参考的“调试信息”.当然,用户也可以在she ...
- CSS浏览器兼容问题集-第三部分
FF与IE 1. Div居中问题 div设置 margin-left, margin-right 为 auto 时已经居中,IE 不行,IE需要设定body居中,首先在父级元素定义text-algin ...
- TED_Topic3:The hidden reason for poverty the world needs to address now
The hidden reason for poverty the world needs to address now By Gary Haugen # Background about our s ...
- 【BZOJ2882】【字符串的最小表示】工艺
题目描述 小敏和小燕是一对好朋友. 他们正在玩一种神奇的游戏,叫Minecraft. 他们现在要做一个由方块构成的长条工艺品.但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方 ...
- MySql 快速去重方法
1.复制需要去重的表 CREATE TABLE 新表 LIKE 旧表 ; 2.将需要去重的字段 设置为唯一union 索引 ALTER TABLE 表名 ADD UNIQUE(`字段`); 3.复制旧 ...
- web上下文监听器ServletContextListener
1 package com.liveyc.common.listener; import javax.servlet.ServletContextEvent; import javax.servlet ...
- CodeForces - 877C
Slava plays his favorite game "Peace Lightning". Now he is flying a bomber on a very speci ...
- VC改变CListCtrl 表格中文字颜色,和背景颜色。
(1)首先需要自定义一个类,派生自CListCtrl.如下图: (2)然后在派生类的头文件中声明一个成员函数,如下图: (3)在源文件中实现该成员方法,如图: (4)在源文件中做消息映射,如图: 这时 ...
- 2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest
2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest A - Arranging Wine 题目描述:有\(R\)个红箱和\(W\)个白箱,将这 ...
- 使用angluar-cli的ng g component home指令出现的错误
Error: ELOOP: too many symbolic links encountered, stat '/Users/zzy/angular/taskmgr/node_modules/@an ...