Shell-Script
figlet 上的顏色變數!
當我啟動CLI Arch Linux並在文件上建構腳本時,我正在創建登錄螢幕
/etc/bash.bashrc
如下所示:
#COMMANDS CREATED INSIDE /ETC/BASH.BASHRC FILE # USING ANSI COLORS RED="\e[31m" ORANGE="\e[33m" BLUE="\e[94m" GREEN="\e[92m" STOP="\e[0m" # LOGIN SCREEN MESSAGE screenfetch printf "${GREEN}" printf "=================================\n" printf "${ORANGE}" figlet -w 200 -f standard "F4NT0 ARCH LINUX" printf "${BLUE}" figlet -w 200 -f small "CLI Operational System" printf "${GREEN}" printf "=================================\n" printf "${STOP}"
在上面的程式碼中,我建構了呼叫顏色的變數,並讓使用printf的****figlet 程序創建的消息**“洩漏”**。
這樣我可以為消息著色,直到最後一個變數呼叫(下面的消息與我在上面的變數中呼叫的顏色保持一致),當我呼叫下一個變數時,程式碼從下一條消息更改顏色,依此類推,直到STOP阻止顏色洩漏的變數。
我喜歡它在我的 Arch 中的工作方式,但我覺得它“臟”的可程式方式……
有一種方法可以在 figlet 命令中添加顏色(ANSI、tput 或其他),以便更充分地在 Unix/Linux 的腳本中添加顏色?
我在這個問題中展示的方式是在 Figlet 上放置顏色的最佳方式,在命令之前放置顏色的方式是我找到讓它工作的唯一方法,在我呼叫下一個顏色之後,下一行將是換新顏色!!
如果有人想知道,我呼叫顏色的方式是使用 ANSI 顏色程式碼,如下所示:
正常顏色:
- \e[30m = 黑色
- \e[31m = 紅色
- \e[32m = 綠色
- \e[33m = 黃色
- \e[34m = 藍色
- \e[35m = 紫色
- \e[36m = 青色
- \e[37m = 白色
淺色:
- \e[90 = 淺黑色
- \e[91 = 淺紅色
- \e[92 = 淺綠色
- \e[93 = 淺黃色
- \e[94 = 淺藍色
- \e[95 = 淺紫色
- \e[96 = 淺青色
- \e[97 = 淺白
我使用的方式不是唯一的方式,甚至不是完整的方式
有關 ANSI 顏色的完整資訊,請閱讀此站點:
https://misc.flogisoft.com/bash/tip_colors_and_formatting
關於變數:
- 我將顏色名稱全部放在大寫字母中,因為這是避免混淆的最佳方法
綠色="\e[92m"
- 要呼叫創建的變數,您需要擷取變數的值,使用 ${} 構造
${綠色}
- 要在命令之前顯示顏色,您需要使用 printf 來洩漏顏色(我使用 Printf 但我認為 echo 也可以)。
printf “${綠色}”
- 在螢幕上列印內容的下一行將具有變數的顏色。
printf “${綠色}”
figlet -f 標準“這將是綠色的”
文本應該是這樣的:
為了阻止不應該出現的顏色洩漏,有兩個步驟:
- 如果要添加新顏色,只需呼叫新顏色
- 如果要停止顏色,請使用以下變數:
> > 停止="\e[0m" >
> > > - 將 Stop 放在 End 之後,您不想像這樣更改顏色:> > printf “${STOP}” > > >