Shell-Script

figlet 上的顏色變數!

  • February 2, 2022

當我啟動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}” > > >

引用自:https://unix.stackexchange.com/questions/444017