linux here用法,linux shell的here document用法(cat EOF)
什么是Here Document?
Here Document 是在Linux Shell 中的一種特殊的重定向方式,它的基本的形式如下
cmd << delimiter
Here Document Content
delimiter
其作用是將兩個 delimiter 之間的內容(Here Document Content 部分) 傳遞給cmd 作為輸入?yún)?shù);
比如在終端中輸入cat << EOF,系統(tǒng)會提示繼續(xù)進行輸入,輸入多行信息再輸入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.txt
echo "hello"
echo "world"
EOF
使用 sh here.sh 運行這個腳本文件,會得到output.txt 這個新文件,其內容如下:
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 被展開成為了腳本的參數(shù) HereDocument
但是有時候不想展開這個變量怎么辦呢,可以通過在起始的 delimiter的前后添加 " 來實現(xiàn),例如將上面的here.sh 改為
cat << "EOF" > output.sh ?#注意引號
echo "This is output"
echo $1
EOF
得到的output.sh 的內容為
echo "This is output"
echo $1
<
Here Document 還有一個用法就是將 '<
使用 <
該用法在編寫Here Document時可將內容部分進行縮進,方便閱讀代碼.
轉自:https://blog.csdn.net/wangjunjun2008/article/details/24351045
(轉)linux shell 的here document 用法 (cat <;<; EOF)
什么是Here Documen: Here Document 是在Linux Shell 中的一種特殊的重定向方式,它的基本的形式如下 cmd << delimiter Here Docu ...
linux shell的here document用法
轉載自:?http://my.oschina.net/u/1032146/blog/146941 什么是Here Document?Here Document 是在Linux?Shell 中的一種特殊 ...
《Advanced Bash-scripting Guide》學習(十四):HERE Document和cat <;<;EOF
本文所選的例子來自于一書,譯者 楊春敏 黃毅 #here document cat <
shell用法 (cat <;<; EOF)
下面的語句會創(chuàng)建不存在的secure.config,如果存在直接追加,然后把多行內容: [database]??????? password = gerrit 寫入文件secure.config ca ...
Linux shell 的 test 命令用法詳解
基本格式:test expression expression為test命令構造的表達式.這里expression是test命令可以理解的任何有效表達式,該簡化格式將是讀者可能會踫見的最常用格式返回值 ...
Linux Shell:Map的用法
Map定義: 在使用map時,需要先聲明,否則結果可能與預期不同,array可以不聲明 方式1: declare -A myMap myMap[" 方式2: declare -A myMap ...
Linux shell - ps,wc命令用法
例1. 查看Oracle數(shù)據(jù)庫活動進程LOCAL=NO,輸出行數(shù) oracle@sha> ps -ef|grep LOCAL=NO|wc -l 15 解釋:ps -ef是查看所有的進程的 然后用 ...
發(fā)現(xiàn)linux shell中$0,$?,$!等的特殊用法
記錄下linux shell下的特殊用法及參數(shù)的說明 變量說明: $$ Shell本身的PID(ProcessID) $! Shell最后運行的后臺Process的PID $? 最后運行的命令的結束代 ...
linux shell中$0,$?,$!等的特殊用法
記錄下linux shell下的特殊用法及參數(shù)的說明 變量說明: $$Shell本身的PID(ProcessID)$!Shell最后運行的后臺Process的PID$?最后運行的命令的結束代碼(返回值 ...
隨機推薦
對,這是http處理層
16年2月的一次代碼重構,面對如此骯臟丑陋的代碼我困在了座椅上整整一天的時間. 底層用java寫的api接口,通過http去調用,在之上是用php寫的業(yè)務邏輯層,重構的代碼,正是php這一層. pub ...
centos 安裝pptp
1. 安裝依賴 ppp yum -y install ppp 2. 編譯安裝pptpd wget http://jaist.dl.sourceforge.net/project/poptop/pptp ...
[轉]VGA、QVGA、CIF、QCIF 。。。的含義
轉自:http://www.360doc.com/content/07/0329/15/494_419655.shtml 相信大家時常都聽到手機支持?VGA?鏡頭.QVGA?屏幕顯示.CIF?短片拍攝 ...
【Spark學習】Apache Spark for 第三方Hadoop分發(fā)版
Spark版本:1.1.1 本文系從官方文檔翻譯而來,轉載請尊重譯者的工作,注明以下鏈接: http://www.cnblogs.com/zhangningbo/p/4137979.html
Asp.net Mvc HTTP 404。
asp.net mvc ?設置完起始頁的時候會出現(xiàn)以下Error 此錯誤的原因是在MVC中設置完起始頁 會改變 ? 的 值 從而使服務器找不到 相對應的路徑 ? 解決方案: 通過 路由設置,解決web ...
codeforces 609F. Frogs and mosquitoes 二分+線段樹
題目鏈接 F. Frogs and mosquitoes time limit per test 2 seconds memory limit per test 512 megabytes input ...
SilkTest高級進階系列8 – 放下榔頭,立地成佛
在地球尚未毀滅的某天,手動測試的同事找到你所在的自動組,問是否可以幫助他們自動化一個需要連續(xù)添加100個條目的測試用例,因為他們覺得這是一個噩夢.你口頭上說要先煙酒煙酒才能知道,但是內里早就滿心歡喜: ...
js 開發(fā)注意事項
涉及api post 請求的, 涉及sqlite 存儲的, conent 用encodeURIComponent, decodeURIComponent ,處理 JSON.parse 最好加上try ...
redis哨兵集群配置
redis 集群架構圖: 需要先配置redis主從,我這邊是單機部署的. 采用一主一從,兩個sentinel. redis host: 172.31.11.235 redis-master port: ...
ZooKeeper和CAP理論及一致性原則
一.CAP理論概述CAP理論告訴我們,一個分布式系統(tǒng)不可能同時滿足以下三種 一致性(C:Consistency)可用性(A:Available)分區(qū)容錯性(P:Partition Tolerance) ...
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的linux here用法,linux shell的here document用法(cat EOF)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java植物名录程序_程序员用Java语
- 下一篇: c语言陷阱试题,超级经典计算机二级C语言