2022年9月23日 星期五

Linux | 使用Toilet Figlet lolcat產生漂亮的Shell Script選單

這邊就直接看實際選單的樣子,細節就不用說太多了,內容都在Script裡面,大家應該看看就懂。


步驟一:安裝toilet figlet

使用 apt install toilet apt install figlet 就可以安裝

安裝玩figlet後可以去這邊下載想要的字型,這邊我會用到3D字型
下載後放到 /usr/share/figlet/ 


步驟二:設定想要產生的選單介紹文字

新增一個叫 welcome.sh 的文件,內容如下


第一行是顯示的文字
第二行是抓取上網的IP資訊

#!/bin/bash

figlet -f 3d.flf "Pen Blog" | lolcat -f
toilet -f term --filter border `wget -qO- https://ipecho.net/plain ; echo` | lolcat -f

執行效果如下圖



步驟三:設計選單

這邊是參考這篇文章所產生的選單,下面是我自己改過的內容。

#!/bin/bash

clear

server_name=$(hostname)

function docker_status() {
        echo ""
        echo "Docker status: "
        docker ps
        echo ""
}


function speed_test() {
    echo ""
        echo ""
        speedtest
    echo ""
}

##
# Color  Variables
##
green='\e[32m'
blue='\e[36m'
clear='\e[0m'
ired='\e[0;101m'
#red='\e[0;31m'

##
# Color Functions
##

ColorGreen(){
        echo -ne $green$1$clear
}
ColorBlue(){
        echo -ne $blue$1$clear
}

menu(){
echo -ne "
`/root/bash/welcome.sh`
""
$(ColorGreen '1)') Docker Status
$(ColorGreen '7)') Internet Speed Test
$(ColorGreen 'q)') Exit
$(ColorBlue 'Choose an option:') "
        read a
        case $a in
                1) clear ; docker_status ; menu ;;
                7) clear; speed_test ; menu ;;
                q) exit 0 ;;
                *) clear ; echo -e $ired "Ooops - unknown choice \"$a\"" $clear ; menu ;;
        esac
}

# Call the menu function
menu


效果如下



參考網址

https://blog.csdn.net/weixin_34413326/article/details/116558236

https://askubuntu.com/questions/901393/when-terminal-is-opened-can-i-get-current-calendar-and-time-displayed

https://www.linux.com/training-tutorials/linux-tips-fun-figlet-and-toilet-commands/ 

https://devdojo.com/bobbyiliev/how-to-create-an-interactive-menu-in-bash

沒有留言: