here文件 here doc EOF重定向

2022-01-15 13:29:16 字數 2507 閱讀 7196

here文件  here doc eof重定向

在shell指令碼程式中,向一條命令傳遞輸入的一種特殊方法是使用here文件。乙個here document就是一段帶有特殊目的的**段。它使用i/o重定向的形式將乙個命令序列傳遞到乙個互動程式或者命令中。它允許一條命令在獲得輸入資料時就好像是在讀取乙個檔案或鍵盤一樣,而實際是從指令碼程式中得到輸入資料。格式:

command <

cat

this is here doc!

date

$home

eofthis is here doc!

date

/home/xiangzi888

#重寫

cat > /tmp/a.txt<[client]

port =$port

socket = /data/mysql/mysql$port/tmp/mysql.sock

[mysqld_safe]

#malloc-lib= /usr/local/mysql/lib/mysql/libjemalloc.so

eof#追加

cat >> /tmp/a.txt<[client]

port =$port

socket = /data/mysql/mysql$port/tmp/mysql.sock

[mysqld_safe]

#malloc-lib= /usr/local/mysql/lib/mysql/libjemalloc.so

eof

2.設定變數

var=$(cat

eof)

3. 廣播: 將訊息傳送給每個登陸的使用者

wall

pizza to the system administrator.

# more

messages

# 注意:

'wall

'命令會把注釋行也列印出來.

halt

4.帶有抑制tab功能的多行訊息(去掉每行前面的tab字元)

cat

<<-eof

this is here doc!

date doesn'

t work

eof

5.關閉變數替換的功能  

cat

<<'

eof'

$home

doesn

't work here!

eof

6.生成另外乙個指令碼(比較詭異!)

(cat

<<'

eof'

#!/bin/bash

# note that since we are inside a subshell,

#+ we can'

t access variables in the "outside" script.

echo

"generated file will be named: /tmp/script.sh

"# instead, the result is literal output.

a=7b=3

c=$(($a *$b))

echo

"c = $c

"exit

0eof

) > /tmp/script.sh

7.here doc與函式

#!/bin/bash

#這個函式看起來就是乙個互動函式, 但是...

getpersonaldata ()

# 給上邊的函式提供輸入.

getpersonaldata

bozeman

hust

data

8.『匿名』here文件,不顯示!(利用 : 可以注釋掉一段**塊,或者寫乙個自文件化(self-documenting)的指令碼,詳見:

#!/bin/bash

# 如果其中某個變數沒被設定, 那麼就列印錯誤資訊.

: <$$$testvariables

exit

0

9.一些注意事項

a.某些工具是不能放入here document中執行的。

b.結尾的limit string, 就是here document最後一行的limit string, 必須從第乙個字元開始. 它的前面不能夠有任何前置的空白. 而在這個limit string後邊的空白也會引起異常. 空白將會阻止limit string的識別.

c.對於那些使用"here document", 並且非常複雜的任務, 最好考慮使用expect指令碼語言, 這種語言就是為了達到向互動程式新增輸入的目的而量身定做的.

f

微軟和HERE在基於位置的服務上繼續合作

微軟和here在基於位置的服務上繼續合作。here 不再是諾基亞的一部分,但這並不意味著公司不會繼續為客戶提供一些最好的基於位置的服務。在德國汽車聯盟的照看下,here 與需要其服務的主要公司簽訂新的協議。最近與 here 簽署協議的是微軟,微軟不是 here 的新客戶。here 和微軟之間的合作夥...

文件 文件總結

可行性研究報告就是在開發乙個軟體之前,先對舊軟體以及新軟體進行分析,說明現有系統的不足,以及新系統的優點和影響,對新系統進行資金預算,分析其可行性。專案開發計畫是在與客戶達成一致意見之後,開始對專案開發所做的規劃,主要是進行任務的分配以及開發的進度的制定。軟體需求說明書主要描述了此軟體應該達到什麼樣...

寫文件呀寫文件

最近在糾結產品文件的撰寫,文件寫的詳細點吧,有點羅嗦,寫的簡單些呢,就感覺內容不夠,怕使用者神馬其他人看不懂.所以決定,先寫多點,再在其中選擇一些不必要的話去刪減!好方法 額,還發現,學好小學語文很重要的了!關於書面語和口語的問題,必須必須得好好斟酌的呀!文件給不同的人看,貌似有不同的書寫方法呢!如...