自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

linux積累---關(guān)于linux特殊重定向的理解

系統(tǒng) Linux
什么是Here Document?Here Document 是在Linux Shell 中的一種特殊的重定向方式,它的作用就是將兩個(gè)delimiter之間的內(nèi)容(Here Document Content 部分)傳遞給cmd 作為輸入?yún)?shù)。

[[117655]]

什么是Here Document

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

  1. cmd << delimiter 
  2. Here Document Content  
  3. delimiter 

它的作用就是將兩個(gè) delimiter 之間的內(nèi)容(Here Document Content 部分) 傳遞給cmd 作為輸入?yún)?shù)。

比如在終端中輸入cat << EOF ,系統(tǒng)會(huì)提示繼續(xù)進(jìn)行輸入,輸入多行信息再輸入EOF,中間輸入的信息將會(huì)顯示在屏幕上。如下:

  1. fish@mangos:~$ cat << EOF 
  2. > First Line  
  3. > Second Line  
  4. > Third Line EOF  
  5. > EOF  
  6. First Line  
  7. Second Line  
  8. Third Line EOF 

注: >這個(gè)符號(hào)是終端產(chǎn)生的提示輸入信息的標(biāo)識(shí)符

這里要注意幾點(diǎn)

  • EOF 只是一個(gè)標(biāo)識(shí)而已,可以替換成任意的合法字符
  • 作為結(jié)尾的delimiter一定要頂格寫,前面不能有任何字符
  • 作為結(jié)尾的delimiter后面也不能有任何的字符(包括空格)
  • 作為起始的delimiter前后的空格會(huì)被省略掉
  • Here Document 不僅可以在終端上使用,在shell 文件中也可以使用,例如下面的here.sh 文件
  1. cat << EOF > output.sh  
  2. echo "hello"  
  3. echo "world"  
  4. EOF  

使用 sh here.sh 運(yùn)行這個(gè)腳本文件,會(huì)得到output.sh 這個(gè)新文件,里面的內(nèi)容如下

  1. echo "hello"  
  2. echo "world"  

Here Document的變形

delimiter 與變量

在Here Document 的內(nèi)容中,不僅可以包括普通的字符,還可以在里面使用變量,例如將上面的here.sh 改為

  1. cat << EOF > output.sh  
  2. echo "This is output"  
  3. echo $1  
  4. EOF 

使用sh here.sh HereDocument 運(yùn)行腳本得到output.sh的內(nèi)容

  1. echo "This is output"  
  2. echo HereDocument 

在這里 $1 被展開(kāi)成為了腳本的參數(shù) HereDocument

但是有時(shí)候不想展開(kāi)這個(gè)變量怎么辦呢,可以通過(guò)在起始的 delimiter的前后添加 " 來(lái)實(shí)現(xiàn),例如將上面的here.sh 改為

  1. cat << "EOF" > output.sh #注意引號(hào)  
  2. echo "hello"  
  3. echo "world"  
  4. EOF 

得到的output.sh 的內(nèi)容為

  1. echo "This is output"  
  2. echo $1 

<< 變?yōu)?<<-

Here Document 還有一個(gè)用法就是將 '<<' 變?yōu)?'<<-'。 使用 <<- 的唯一變化就是Here Document 的內(nèi)容部分每行前面的 tab (制表符)將會(huì)被刪除掉,這種用法是為了編寫Here Document的時(shí)候可以將內(nèi)容部分進(jìn)行縮進(jìn),方便閱讀代碼。

原文鏈接:http://blog.itpub.net/23890223/viewspace-1225789/

責(zé)任編輯:牛小雨 來(lái)源: 1向2飛的博客
相關(guān)推薦

2010-03-09 16:11:59

Linux重定向

2017-01-19 19:14:20

Linux重定向命令

2020-07-27 07:41:23

Linux重定向數(shù)據(jù)流

2022-11-10 15:08:44

Linux輸入輸出

2014-09-04 11:39:43

Linux

2011-04-20 10:15:02

Linuxconsole口

2017-01-19 19:24:29

Linux重定向

2020-02-24 11:37:56

Linux重定向管道

2010-03-01 14:45:07

Linux文件重定向

2010-12-14 15:07:15

ICMP路由重定向

2010-03-19 09:22:02

linux命令應(yīng)用及語(yǔ)

2010-06-23 16:14:52

Linux Bash

2020-07-06 08:00:04

Linux重定向讀寫數(shù)據(jù)

2022-11-14 15:07:09

Linux管道

2009-12-10 14:42:22

Linux操作系統(tǒng)

2020-12-09 11:10:12

shellLinux管道

2022-11-17 08:40:14

Linux輸出錯(cuò)誤重定向

2009-11-23 18:39:17

PHP重定向

2022-09-02 08:03:44

IO程序網(wǎng)卡

2010-07-13 14:10:44

ICMP協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)