首頁 > 軟體

如何在BASH中建立TXT模板指令碼

2020-06-16 16:12:43

如果你發現自己每天在終端中建立相似的文字,為什麼不通過建立一個.txt模板指令碼來簡化此過程並節省時間呢?聽起來是不是很有趣,那就啟動一個終端,選擇自己喜歡的文字編輯器,然後開始吧!

建立一個新的模板指令碼

無論您喜歡哪種方式,建立一個新的bash指令碼。我們正在終端中使用nano編輯器在主目錄中的“linuxidc”資料夾中建立一個名為“ linuxidc.com.sh”的檔案:

定義引數

在您喜歡的編輯器中開啟檔案。在最頂部,輸入將其定義為bash指令碼的典型介紹:

#!/bin/sh

為了使內容整潔清晰,請輸入註釋行,並在其後加上標題。

“後續操作”部分是我們要在模板中定義的一堆引數。模板指令碼完成後,我們將能夠向其提供這些引數以將其注入到文字中。

我們在注釋行中輸入“Linux公社”作為標題,如下所示:

#Linux公社

接下來,我們通過將它們對映到三個編號的變數來定義三個引數“ SITE”,“ AUTHOR”和“ CONTACT”:

SITE=$1
AUTHOR=$2
CONTACT=$3

您可以用相同的方式定義不同的(或更多的)引數。

建立您的模板

有了我們的模板引數之後,就該建立文字模板了。

和以前一樣,我們以注釋掉的行作為標題,如下所示:

#模板

這是我們要新增到模板中的內容:

  • 我們將模板“夾在”兩行之間。
  • 第一行讀取cat << EOF,並基本上宣告了“接下來的所有內容(即:我們的實際模板),直到EOF出現之前,都應該被視為單個輸入。”
  • 第二行是EOF,在本例中是“codeword”,在這種情況下,它會中斷cat命令迴圈並結束模板。

cat << EOF
$SITE歡迎您使用Bash生成的TEXT模板
作者 $AUTHOR.
與我聯絡 $CONTACT.
EOF

不過,一個更有用的模板可能會以電子郵件的形式出現。您可以定義“$NAME”和“$TASK”引數,然後為電子郵件建立一個模板,比如:

cat << EOF
您好 $NAME,
我只是想給你回個電話 $TASK.
你能告訴我有什麼變化嗎?
 
最好的問候,
我的名字
EOF

完成後,儲存您的編輯(Ctrl+ O)並退出(Ctrl+ X)該程式。

接下來,使用以下命令使指令碼可執行:

chmod u+x linuxidc.com.sh

 

這樣,您將能夠使用指令碼本身的名稱來建立新文件。

測試執行

使用定義的引數執行指令碼。我們的測試執行如下所示:

./linuxidc.com.sh Linux公社 linuxidc linuxidc@linuxidc.com

Bash 文字模板測試執行

第一部分是指令碼的名稱,第一個引數“ Linux公社”,第二個引數“ linuxidc”,第三個引數“ linuxidc@linuxidc.com”。

請注意,我們可以使用下劃線(_)將“Linux公社”一詞組合在一起(比如:Linux_公社)。如果要使用空格,請新增引號(例如“ Linux 公社”)。

建立檔案

準備好指令碼後,由於重定向功能強大,您可以將其用作建立新文件的模板。

為此,請像在測試執行中一樣,像以前一樣執行它,但是在定義了引數之後,輸入> path/to/file/linuxidc.com.txt。在我們的例子中,我們的命令如下所示:

./linuxidc.com.sh Linux公社 linuxidc linuxidc@linuxidc.com > linuxidc.com.txt

這樣,您可以指示模板將其結果輸出到定義的檔案而不是終端。至於實際結果,可以見下圖。

看起來並不容易!

雖然看起來很複雜,但如果你按照上面的說明去做,其實很簡單。如果您經常需要從相同的模板建立文字,那麼它將非常有用。例如,您可以自動建立常規電子郵件、產品資訊頁面等,其中相同的單詞或短語可能在同一文字中多次出現。

或者,您可以使用相同的方法來建立程式碼生成模板,例如,可以幫助您使用單個命令來設定包含整個網站結構的HTML檔案或執行bash。啟動過程中以root使用者身份執行指令碼。


IT145.com E-mail:sddin#qq.com