cat <<EOF用法
转自:http://blog.csdn.net/apache0554/article/details/45508631
cat <<EOF和cat <<-EOF两个都是获取stdin,并在EOF处结束stdin,输出stdout。
但是<<-是什么意思呢?
先来看man中的说明:
If the redirection operator is <<-, then all leading tab characters are stripped from input lines and the line containing delimiter.
翻译过来的意思就是:如果重定向的操作符是<<-,那么分界符(EOF)所在行的开头部分的制表符(Tab)都将被去除。
这可以解决由于脚本中的自然缩进产生的制表符。
通俗一点的解释:
在我们使用cat <<EOF时,我们输入完成后,需要在一个新的一行输入EOF结束stdin的输入。EOF必须顶行写,前面不能用制表符或者空格。
比如,下面的语句就不会出错:
- cat <<EOF
- Hello,world!
- EOF
如果结束分解符EOF前有制表符或者空格,则EOF不会被当做结束分界符,只会继续被当做stdin来输入。
而<<-就是为了解决这一问题:
- cat <<-EOF
- Hello,world!
- EOF
上面的写法,虽然最后的EOF前面有多个制表符和空格,但仍然会被当做结束分界符,表示stdin的结束。
这就是<<和<<-的区别。
如果不是在脚本中,我们可以用Ctrl-D输出EOF的标识
cat <<EOF用法的更多相关文章
- 产生文件命令touch,echo,cat<<EOF>test,less,more,tail,head
. 输出命令 echo,cat,管道(|),tee,重定向(>, >>)等 . 创建一个文件:用 touch.echo.cat.tee, 重定向(>, >>)等 [ ...
- Shell脚本——cat/EOF输出多行
在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中.(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判 ...
- Ubuntu16.04 使用sudo cat EOF 编辑文件,提示Permission denied错误的解决办法
一.执行命令报错 在Ubuntu16.04下,使用如下命令,修改hosts主机文件,居然提示权限错误: catty@node186:~$ sudo cat <<EOF > /etc/ ...
- cat <<EOF
1.cat >file记录的是键盘输入,相当于从键盘创建文件,并且只能创建新文件,不能编辑已有文件.>是数据重导向,会将你输入的文本内容输出到file中. 2.cat <<EO ...
- linux shell的here document用法(cat << EOF)
什么是Here Document?Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下cmd << delimiter Here Docu ...
- cat <<-EOF >&2
cat <<-EOF >&2 cat >&2 <==> cat 1>&2 标准输出被重定向到错误输出 默认屏幕 <替换 < ...
- sudo cat > EOF权限问题
sudo bash -c 'cat << EOF > /etc/yum.repos.d/some-name.repo line1 line2 line3 EOF'
- 《Advanced Bash-scripting Guide》学习(十四):HERE Document和cat <<EOF
本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者 杨春敏 黄毅 #here document cat <<EOF \z EOF ca ...
- cat<<EOF获取标准输入到文件中
原文:http://blog.csdn.net/apache0554/article/details/45508631 ---------------------------------------- ...
随机推荐
- IO中同步、异步与阻塞、非阻塞的区别
一.同步与异步同步/异步, 它们是消息的通知机制 1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回. 按照这个定义,其实绝大多数函数都是同步调用(例如si ...
- 20161005 NOIP 模拟赛 T2 解题报告
beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] ...
- db2工具优化
- sencha 安装、学习
sencha touch 是Extjs 的手机版,Extjs是创建富客户端的AJAX应用中的重量级框架,sencha touch当然就是面向触摸设备的重量级js框架,在做基于桌面的网页时经常用的js ...
- jQuery hide()并不等于hide(0)
在实际使用中,经常用hide()函数来隐藏HTML元素,通常是没有什么问题的,但在一次做二级下拉菜单时遇到了问题,后来才发现有时候“speed”是不能省略的,即使“speed=0”,也就是说hide( ...
- 一个资深iOS开发者对于React Native的看法
一个资深iOS开发者对于React Native的看法 当我第一次尝试ReactNative的时候,我觉得这只是网页开发者涉足原生移动应用领域的歪门邪道. 我认为一个js开发者可以使用javasc ...
- hdu1241 dfs
链接改天再补 杭电又崩了... 题意:求“@”组成了多少个联通区域,每个点的8个方向都认为是相连的 思路:对每一个点进行搜索 当Map == @ && vis == 0 时 可进入搜索 ...
- for嵌套:1.兔子生兔子问题 2.打印菱形 3.求100以内质数的和
1.兔子生兔子问题 方法一: 方法二: 2.打印菱形 3.求100以内质数的和
- 关于mysql(或MariaDB)中的用户账号格式
之前在修改数据库本地root用户密码时,发现我远程连接的root用户的密码并没有改变,之后查了一下,发现原来这两个root不是同一个用户(汗..) 于是联想到之前配置数据库每次给用户赋予远程连接权限时 ...
- ArcGIS Server 10.1 错误 service failed to start,
启动发布的地图服务时出现如下错误: ERROR: service failed to start, ServiceStarter thread timeout. 具体原因未知. Google中说了可能 ...