分享一个如何使用Bash脚本编写菜单menu的例子

这是一段postinstall脚本,也就是在安装完ubuntu之后你可以执行的一些操作。比如,安装chromel浏览器,升级系统等。在这个例子中展示了一种使用bash脚本实现菜单选项的写法,废话不多说,直接上代码:

bash 复制代码
#!/bin/bash


function app_chrome() {
    #CHROME
    cd /home/
    sudo wget https://dl.google.com/linux/linux_signing_key.pub
    sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo dpkg -i google-chrome-stable_current_amd64.deb
    sudo apt-get install -f
    sudo rm -f google-chrome*.deb
    sudo rm -f *signing_key.pub
    echo -e "\e[44m_____End Chrome_____\e[0m"
}

function app_slack() {
    #SLACK
    cd /home/
    sudo wget https://downloads.slack-edge.com/linux_releases/slack-desktop-4.12.2-amd64.deb
    sudo dpkg -i slack-desktop-*.deb
    sudo rm -f slack*.deb
    echo -e "\e[44m_____End Slack_____\e[0m"
}

function app_zoom() {
    #ZOOM
    cd /home/
    sudo wget https://zoom.us/client/latest/zoom_amd64.deb
    sudo dpkg -i zoom*.deb
    sudo rm -f zoom*.deb
    echo -e "\e[44m_____End Zoom_____\e[0m"
}

function app_git() {
    sudo add-apt-repository -y ppa:git-core/ppa 
    sudo apt update; sudo apt install -y git
    echo -e "\e[44m_____End Git_____\e[0m"
}

function update_system() {
    sudo apt update -y  && sudo apt upgrade -y && sudo apt autoremove -y
}

function all() {
    app_chrome
    app_slack
    app_zoom 
    app_git
    update_system
    echo -e "\e[44m_____End ALL\e[0m"
}

menu(){
echo -ne "
**OPTIONS**
2) Install Zoom 
3) Update_system
4) Install Chrome
5) Install Slack
6) Install Git

1) --ALL--
0) Exit

Choose an option:"
        read a
        case $a in
            1) all ; menu ;;               
            2) app_zoom ; menu ;;
            3) update_system ; menu ;;
            4) app_chrome ; menu ;;            
            5) app_slack ; menu ;;
            6) app_git ; menu ;;



        0) exit 0 ;;
        *) echo -e $red"Wrong option."$clear; WrongCommand;;
        esac
}

# 执行menu函数
menu
相关推荐
为美好的生活献上中指21 分钟前
java每日精进 5.18【文件存储】
java·开发语言·minio·七牛云存储·s3·七牛云
winfredzhang1 小时前
使用Python和Selenium打造一个全网页截图工具
开发语言·python·selenium
mahuifa1 小时前
(10)python开发经验
开发语言·python
_龙小鱼_2 小时前
Kotlin扩展简化Android动画开发
android·开发语言·kotlin
小伍_Five2 小时前
spark数据处理练习题详解【上】
java·开发语言·spark·scala
mascon2 小时前
C#自定义扩展方法 及 EventHandler<TEventArgs> 委托
开发语言·c#
Evand J3 小时前
【MATLAB例程】线性卡尔曼滤波的程序,三维状态量和观测量,较为简单,可用于理解多维KF,附代码下载链接
开发语言·matlab
苕皮蓝牙土豆3 小时前
C++ map容器: 插入操作
开发语言·c++
Dxy12393102163 小时前
Python 装饰器详解
开发语言·python
linab1123 小时前
mybatis中的resultMap的association及collectio的使用
java·开发语言·mybatis