交互式脚本

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

准备

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

简单的交互

demo.sh

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

【Shell】简单的交互式脚本相关推荐

  1. shell简单的交互式脚本

    使用tftp服务从192.168.3.164服务器上下载haha.txt文件到本机目录下来测试shell #!/bin/bash /usr/bin/tftp <<upload_rtt_fl ...

  2. Linux shell简单创建用户脚本

    前面介绍简单的shell编写规则. 现在开始编写一个简单的shell脚本. Linux shell介绍 编写shell脚本    1.创建脚本文件    2.根据需求,编写脚本    3.测试执行脚本 ...

  3. datatable使用_使用Streamlit从简单的Python脚本创建交互式WebApp

    如果有人告诉您可以使用150-200行代码创建交互式Web应用程序,该怎么办? 有趣的权利. Streamlit为您提供了使用简单的python脚本和一些streamlit调用来创建漂亮的Web应用程 ...

  4. Shell之/bin/bash脚本的基础实战

    本人菜鸟一枚,初次接触linux的shell脚本: shell script,最简单的功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令,而shell script更是提供了数组 ...

  5. linux系统写一个脚本,编写一个简单的linuxshell脚本

    shell脚本和windows平台上的bat批处理是一样的,简化用户处理重复动作的操作,shell脚本由shell命令组成.下面是学习啦小编收集整理的编写一个简单的linuxshell脚本,希望对大家 ...

  6. linux基础(四):shell简单命令;文件系统命令,系统操作命令,文本操作命令;文本处理命令

    目录 一.shell简单命令 1.1命令入门 1.1.1命令提示符详解 1.1.2命令格式 1.2 获取命令的帮助 1.2.1 help 1.2.2 命令 --help 1.2.3 查手册&搜 ...

  7. shell一键生成密钥脚本

    shell一键生成密钥脚本 全局声明:以下脚本使用参数路径都来自系统默认,如有需要请自行更改. 初步脚本实例: ssh-keygen -t rsa -N '' <<EOF /root/.s ...

  8. 交互式shell和非交互式shell、登录shell和非登录shell

    交互式shell和非交互式shell.登录shell和非登录shell: 我们在图形交互界面操作时,是交互式的,先理解交互式下的登陆和非登录概念: 概念 举例 特点 登陆shell 用户登陆时,输入用 ...

  9. 一天学会shell语言,shell教程,shell简单入门,shell中文文档

        shell语言是一门linux系统下的工具语言,主要用于写一些linux系统下的操作命令,实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核.或者直接理解为shell命 ...

最新文章

  1. oracle存储过程的基本语法
  2. linux shell map dict 字典数组
  3. Dos命令控制Mysql语句(自己老记不住)
  4. WindowsPhone 7.8 Tiles 3 : 7.8的Tiles利器mangopollo
  5. GeoHash -------寻找附近人
  6. 人脸识别的python实现代码_手把手教你用1行代码实现人脸识别 --Python Face_recognition...
  7. [win7] 去除将窗口拖到屏幕边缘时“自动最大化”
  8. python linux alias,linux命令:alias
  9. 『收藏向 期末SSM课设救急』 教你从搭建到测试运行手撸一个SSM项目实战,附带源码,前端页面、解析和一般遇到的问题(排雷)
  10. centos php-mysql_centOS 下安装php和mysql
  11. 满二叉树与完全二叉树入门
  12. python 3 导入 迭代判断
  13. 为什么使用了security 后台出不来了_C#实现使用MD5加密用户登录密码,System.Web.Security报错...
  14. 谷歌livereload插件使用
  15. cisco链路聚合配置
  16. 图片怎么去水印?大神教你3个免费去水印方法
  17. 前端周刊第56期:应接不暇的技术大会
  18. 【Linux】常用配置文件路径
  19. 局域网使用teamviewer
  20. 人工智能ai用什么编程语言_2020年人工智能的5种最佳编程语言

热门文章

  1. SQL_DISTINCT 语句详细用法
  2. Android屏幕适配-资源文件夹命名与匹配规则
  3. 怎么签约single_trade_query接口,人工服务
  4. vfp的一款图片处理库,简洁好用,免费不收钱,值得推荐
  5. 网易游戏研发工程师笔试题----赛马
  6. 【python实战】多线程下载文件
  7. php mysql三_PHP 和 MySQL 基础教程(三)_MySQL
  8. 量子隐形传送(Quantum Teleportation)初学
  9. 苦逼了就辞职弃学去旅行?
  10. 使用嵌套循环产生下列图案 $ $$ $$$ $$$$