各地市:
郑州网站建设 洛阳网站建设 开封网站建设 安阳网站建设 新乡网站建设 濮阳网站建设 焦作网站建设 鹤壁网站建设 三门峡网站建设 商丘网站建设 许昌网站建设 漯河网站建设 平顶山网站建设 驻马店网站建设 周口网站建设 南阳网站建设 信阳网站建设 济源网站建设 二七区网站建设 中原区网站建设 管城区网站建设 惠济区网站建设 金水区网站建设 上街区网站建设 巩义市网站建设 新密市网站建设 登封市网站建设 荥阳市网站建设 中牟县网站建设 经开区网站建设 高新区网站建设 涧西区网站建设 西工区网站建设 老城区网站建设 瀍河回族区网站建设 洛龙区网站建设 吉利区网站建设 偃师市网站建设 孟津县网站建设 新安县网站建设 洛宁县网站建设 宜阳县网站建设 伊川县网站建设 嵩县网站建设 栾川县网站建设 汝阳县网站建设 杞县网站建设 兰考县网站建设 通许县网站建设 尉氏县网站建设 开封县网站建设 金明区网站建设 顺河回族区网站建设 龙亭区网站建设 鼓楼区网站建设 禹王台区网站建设 安阳县网站建设 林州市网站建设 内黄县网站建设 汤阴县网站建设 滑县网站建设 龙安区网站建设 殷都区网站建设 文峰区网站建设 北关区网站建设 辉县市网站建设 卫辉市网站建设 新乡县网站建设 获嘉县网站建设 原阳县网站建设 延津县网站建设 封丘县网站建设 长垣县网站建设 卫滨区网站建设 红旗区网站建设 牧野区网站建设 凤泉区网站建设 华龙区网站建设 清丰县网站建设 南乐县网站建设 濮阳县网站建设 莘县网站建设 范县网站建设 台前县网站建设
当前位置: 主页 > 维护运营 > 服务器安全 >

往流科技经历分析 linux积累---关于linux特殊重定向

发布时间:2017-03-17 17:24 | 发布者:往流科技 | 浏览次数:

      什么是Here Document?Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的作用就是将两个delimiter之间的内容Here Document Content 部分)传递给cmd 作为输入参数。AD:


linux特殊重定向


什么是Here DocumentHere Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下

cmd << delimiter 

Here Document Content  

delimiter 
它的作用就是将两个 delimiter 之间的内容(Here Document Content 部分) 传递给cmd 作为输入参数。比如在终端中输入cat << EOF ,系统会提示继续进行输入,输入多行信息再输入EOF,中间输入的信息将会显示在屏幕上。如下:
fish@mangos:~$ cat << EOF 

> First Line  

> Second Line  

> Third Line EOF  

> EOF  

First Line  

Second Line  

Third Line EOF 
注: >这个符号是终端产生的提示输入信息的标识符这里要注意几点
EOF 只是一个标识而已,可以替换成任意的合法字符
作为结尾的delimiter一定要顶格写,前面不能有任何字符
作为结尾的delimiter后面也不能有任何的字符(包括空格)
作为起始的delimiter前后的空格会被省略掉
Here Document 不仅可以在终端上使用,在shell 文件中也可以使用,例如下面的here.sh 文件

cat << EOF > output.sh  

echo "hello"  

echo "world"  

EOF  
使用 sh here.sh 运行这个脚本文件,会得到output.sh 这个新文件,里面的内容如下
echo "hello"  

echo "world"  
Here Document的变形delimiter 与变量在Here Document 的内容中,不仅可以包括普通的字符,还可以在里面使用变量,例如将上面的here.sh 改为
cat << EOF > output.sh  

echo "This is output"  

echo $1  

EOF 
使用sh here.sh HereDocument 运行脚本得到output.sh的内容
echo "This is output"  

echo HereDocument 
在这里 $1 被展开成为了脚本的参数 HereDocument但是有时候不想展开这个变量怎么办呢,可以通过在起始的 delimiter的前后添加 " 来实现,例如将上面的here.sh 改为
cat << "EOF" > output.sh #注意引号  

echo "hello"  

echo "world"  

EOF 
得到的output.sh 的内容为
echo "This is output"  

echo $1 

<< 变为 <<-Here Document 还有一个用法就是将 '<<' 变为 '<<-'。 使用 <<- 的唯一变化就是  的内容部分每行前面的 tab (制表符)将会被删除掉,这种用法是为了编写Here Document的时候可以将内容部分进行缩进,方便阅读代码。

本文来自 郑州网站建设 http://www.wangliukeji.com,提供。