【Shell】简单的交互式脚本

交互式脚本

前言:
最近写了个服务部署脚本,为了简化操作,我把脚本的执行命令全部封装到脚本中,这样在部署的时候,小伙伴只需要通过输入不同的选择,就可以完成部署,这样也避免操作失误,对环境产生影响;

准备

首先我们来看一下,写一个交互式脚本需要了解shell哪些知识?
1.shell-变量;
2.shell-参数传递;
3.shell-流程控制;
4.shell-函数;
5.shell-输入输出;
6.shell-文件读取;
7.shell-结束指令;

简单的交互

demo.sh

choose_environment() {
    # 重新选择
    reselect=${1}
    if [ $reselect == 0 ];then
        echo '请选择要操作的环境: '
    elif [ $$reselect == 1 ];then
        echo '请重新选择要操作的环境: '
	fi
    echo '1.开发环境'
    echo '2.测试环境'
	echo 'q.结束'
	# 获取用户的输入
    read -p '请输入序号, 选择环境: ' -n 1 environmentnum
	echo '\n'
	# 这里注意,判断空必须加双引号,双引号识别为没有内容;主要处理没有输入指令直接回车
	if [ -z "$environmentnum" ];then
		choose_environment 0
    elif [ $environmentnum == 1 ];then
        echo '进入开发环境操作'
    elif [ $environmentnum == 2 ];then
        echo '进入测试环境操作'
	elif [ $environmentnum == 'q' ];then
		echo '欢迎再次使用'
		# 结束脚本执行
		exit 1
    else 
        echo '不支持的序号'
		echo $environmentnum
		choose_environment 1
    fi
}

choose_environment 0

上面部分代码写了注释:
我们对上面用到的指令进行一一解释它的作用:

1.reselect: 是接受传递进来的第一个参数的变量;通过 ${数字} 的语法去接受参数;
2.if, elif, else, fi: 是流程控制指令;
  • [ $reselect == 0 ] 是用来做判断;在脚本中使用变量,要使用 $ 变量名的方式;
  • 判断语句必须和中括号之间存在一个空格;
  • == 是做值判断;
  • 分号是判断语句结束标志;
  • [ -z “$environmentnum” ] 这里的 -z 是判断变量值是否为空;
  • then 后面跟进入判断语句的执行内容;
  • fi 是流程控制语句的结束标志,在一个流程控制中必须存在,和 if 成对出现;
3.echo一般是做内容输出到命令行;
4.(read -p '请输入序号, 选择环境: ’ -n 1 environmentnum):
  • read 是用来读取用户在命令行的输入;
  • -p 后面跟的是提示文案;
  • -n 后面跟的是限定输入字符个数;
  • environmentnum 是用来接受用户在命令行输入的内容
5.choose_environment
  • choose_environment(): 是定义的函数
  • choose_environment 0: 是调用函数代码,其中 0 是第一个传递参数的值;
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜七天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值