如何编写一个可以和用户进行交互的脚本

在Linux上我们不可避免的要接触到脚本,很多时候是别人写的,但有时自己也需要写一些脚本。
如何编写一个可以和用户进行交互的脚本呢,第一种方法,从命令行传入

#!/bin/bash

start()
{
   echo "启动系统"
}
stop()
{
   echo "停止系统"
}

restart1()
{
   stop
   start
}
case "$1" in
	restart1)
		restart1
		;;
	start)
		start
		;;
	stop)
		stop
		;;
	restart)
		stop
		start
		;;
	*)
		echo $"使用方法: $0 {start|restart1|stop|restart}"
		echo "启动|停止所有|停止再启动"
		RETVAL=1
esac

解释:$0,$1表示脚本传输的参数,其中$0表示命令本身,$1表示第一个参数
case 为分支语句,根据输入的第一个参数的值做不同的程序转向。比如输入的参数为start,则调用start函数。
start(),stop(),restart1()分别为3个函数,在分支语句中进行调用。
使用效果如下:
在这里插入图片描述
第二种方式,采集每次用于的输入,进行判断后执行不同的命令,可以有简单界面,可反复进行各种交互。

#!/bin/bash


installSoft1(){
    echo "安装软件1完毕"
}

installSoft2(){
    echo "安装软件2完毕"
}

#主菜单
main_menu() {
    while true; do
        clear

        echo "*******************************"
        echo "*    测试工具 V2024-11-29     *"
        echo "*******************************"

        echo "1. 安装软件1"
        echo "2. 安装软件2"
        echo "0. 退出"
        while true; do
            read -p "输入命令: " choice

            case $choice in
                1)
                    read -p "确认要安装软件1吗?5确认,其他放弃: " choiceChild
                    if [ "$choiceChild" = "5" ]; then
                        installSoft1
                        
                    else
                        echo "用户放弃安装软件1"
                    fi
                    read -p "按Enter键以继续..."
                    break
                    ;;
                2)
                    installSoft2
                    read -p "按Enter键以继续..."
                    break
                    ;;
                0)
                    echo "退出脚本"
                    exit 0
                    ;;
                *)
                    echo "无效选择,请重新输入。"
                    ;;
            esac
        done
    done
}
main_menu

解释:脚本直接运行函数main_menu
在main_menu函数中用read命令检测用户输入,根据输入进行选择不同的函数执行
执行函数1时,用read命令再次进行确认。while循环保证菜单可以反复执行,直到退出。
执行效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值