亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

“cat<EOF”在bash是如何工作的?

“cat<EOF”在bash是如何工作的?

大話西游666 2019-11-07 06:06:18
“cat<EOF”在bash是如何工作的?我需要編寫一個腳本來將多行輸入到程序(psql).在Google搜索了一下之后,我發現下面的語法工作起來了:cat << EOF | psql ---params BEGIN;`pg_dump ----something`update table .... statement ...;END;EOF這將正確構造多行字符串(從BEGIN;到END;,并將其作為輸入psql.但是我不知道它是如何/為什么工作的,請有人解釋一下好嗎?我主要指的是cat << EOF,我知道>輸出到文件,>>附加到文件中,<從文件中讀取輸入。什么<<是嗎?有手冊嗎?
查看完整描述

3 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

在您的例子中,“EOF”被稱為“這里的標簽”。基本上<<Here告訴shell,您將輸入一個多行字符串,直到“標記”。Here..你可以把這個標簽命名為你想要的,它通常是EOF或STOP.


關于這里標簽的一些規則:


標簽可以是任何字符串,大寫還是小寫,盡管大多數人按照慣例使用大寫字母。

如果該行中還有其他單詞,則該標記將不被視為“此處”標記。在這種情況下,它將僅僅被視為字符串的一部分。標記本身應該位于單獨的行上,以被視為標記。

標記應該在該行中沒有前導或尾隨空格,才能被視為標記。否則,它將被視為字符串的一部分。

例子:


$ cat >> test <<HERE

> Hello world HERE <-- Not by itself on a separate line -> not considered end of string

> This is a test

>  HERE <-- Leading space, so not considered end of string

> and a new line

> HERE <-- Now we have the end of the string



查看完整回答
反對 回復 2019-11-08
  • 3 回答
  • 0 關注
  • 478 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號