2021-05-12 14:32:11
如何在BASH中建立TXT模板指令碼
如果你發現自己每天在終端中建立相似的文字,為什麼不通過建立一個.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使用者身份執行指令碼。
相關文章