shell编写一个判断脚本

4.1问题

本例要求在虚拟机server0上创建/root/foo.sh脚本,任务目标如下:

当运行/root/foo.sh redhat,输出为fedora

当运行/root/foo.sh fedora,输出为redhat

当没有任何参数或者参数不是redhat或者fedora时,其错误输出产生以下信息:/root/foo.sh redhat|fedora

4.2方案

Shell脚本中执行条件测试的方式:

任何一条命令行

test测试表达式

[测试表达式]

常用的test测试选项:

文件状态检测-f、-d、-e、-r、-w、-x

整数值比较-gt、-ge、-eq、-ne、-lt、-le

字符串比较==、!=

取反操作!

多分支if选择结构:

if条件测试操作1;then

命令序列1....

elif条件测试操作2;then

命令序列2....

else

命令序列3....

fi

4.3步骤

实现此案例需要按照如下步骤进行。

步骤一:编写foo.sh判断脚本

1)编写脚本代码

[root@server0~]#vim /root/foo.sh

#!/bin/bash

if [$#-eq 0];then

echo "/root/foo.sh redhat|fedora"  > &2

elif  [$1="redhat"];then

echo "fedora"

elif [$1="fedora"];then

echo "redhat"

else

echo "/root/foo.sh redhat|fedora" > &2

fi

2)添加x执行权限

[root@server0~]#chmod +x /root/foo.sh

步骤二:测试foo.sh判断脚本

1)测试提供正确参数的情况

[root@server0~]#/root/foo.sh redhat

fedora

[root@server0~]#/root/foo.sh fedora

Redhat

2)测试提供非预期参数的情况

[root@server0~]#/root/foo.sh ubuntu

/root/foo.sh redhat|fedora

3)测试不提供参数的情况

[root@server0~]#/root/foo.sh

/root/foo.sh redhat|fedora


案例5:创建一个脚本

5.1 案例概述:

在server0上创建一个名为/root/foo.sh的脚本,让其提供下列特性:

当运行/root/foo.sh redhat,输出为fedora

当运行/root/foo.sh fedora,输出为redhat

当没有任何参数或者参数不是redhat或者fedora时,其错误输出产生以下的信息:/root/foo.sh redhat|fedora

5.2 解题参考:

[root@server0~]#vim /root/foo.sh

#!/bin/bash

If [ "$1" = "redhat" ];then

echo "fedora"

elif [ "$1" = "fedora" ];then

echo "redhat"

else

Echo "/root/foo.sh redhat | fedora" > &2

fi

[root@server0~]#chmod  +x /root/foo.sh

shell编写一个判断脚本的更多相关文章

  1. 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

    一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...

  2. shell编写一个批量添加用户脚本

                                                          shell编写一个批量添加用户脚本 5.1问题 本例要求在虚拟机server0上创建/roo ...

  3. Linux shell编写端口扫描脚本

    Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...

  4. 编写一个BAT脚本协助运维人员遇到问题时候调测数据库是否有效连接成功的操作攻略

    简单摘要: 1.内网系统出现故障需要排查 2.运维人员不熟悉数据库操作,没法通过连接数据库和执行SQL语句的方式排查数据库及数据是否正常 3.解决方案:编写一个bat脚本,运维人员双击运行即可.   ...

  5. 【原】shell编写一个简单的jmeter自动化压测脚本

    在公司做压力测试也挺长时间了,每次测试前环境数据准备都需要话费较长时间,所以一直在考虑能不能将整个过程实现自动化进行,于是就抽空写了一个自动化脚本,当然这个脚本目前功能十分简陋,代码也不完善,很有很多 ...

  6. 从0开始的Python学习013编写一个Python脚本

    通过之前的学习我们已经了解了Python的很多基础运用了,现在我们尝试着做一个有使用价值的小脚本. 问题 需求: 我想要一个可以给我备份重要文件的程序. 需求分析: 首先文件是有存储路径,文件的路径和 ...

  7. 用Shell编写项目发布脚本

    1.首先在github上创建一个测试用的仓库 2.本地编写一个可以运行的测试项目,上传至github 3.链接服务器,编写脚本如下:注意:编写前需要在服务器上安装git和maven 执行build_c ...

  8. python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)

    经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...

  9. 编写一个python脚本功能-备份

    版本一 解决方案当我们基本完成程序的设计,我们就可以编写代码了,它是对我们的解决方案的实施.版本一例10.1 备份脚本——版本一 #!/usr/bin/python # Filename: backu ...

随机推荐

  1. 这些MongoDB的隐藏操作你真的都掌握了吗?反正我是刚知道

    背景 最近公司系统还原用户时偶尔会出现部分用户信息未还原成功的问题,最为开发人员,最头疼的不是代码存在bug,而是测试发现了bug,但一旦我去重现,它就不见了.Are you kidding me? ...

  2. MATLAB中的Regex

    regexprep——用于对字符串进行查找并替换. regexp Definition: 用于对字符串进行查找,大小写敏感. startIndex = regexp(str,expression) 返 ...

  3. R语言实战(三) 图形初阶

    3.1 使用图形 plot:基础绘图 abline:添加回归直线 hist:绘制直方图 boxplot:绘制箱线图 dev.new():returns the return value of the ...

  4. 问题描述:判断一个整数 n 是否为 2 的幂次方

    一.2的幂次方的基本定义 什么样的数为2的幂次方?例如2^0=1,2^1=2,2^2=4……,符合公式2^n(n>=0)的数称为2的幂次方. 如何判断一个数是否为2的幂次方呢?基本思路:把一个数 ...

  5. <keep-alive> 大量异步数据嵌入在循环体内,会有大量相同异步请求,可以缓存下拉用。

    <keep-alive> 大量异步数据嵌入在循环体内,会有大量相同异步请求,可以缓存下拉用.

  6. MySQL:GROUP_CONCAT函数的使用

    原文链接 GROUP_CONCAT功能 将某个字段的值拼接成字符串. 举例使用 先看一下原始数据表 执行下面sql语句 SELECT `cid`,GROUP_CONCAT(mid) AS `mids` ...

  7. 物联网 软硬件系统 树莓派 单片机 esp32 小程序 网页 开发 欢迎相互交流学习~

    物联网软硬件开发 知识分享 多年学生项目开发经验 物联网 软硬件系统 树莓派 单片机 esp32 小程序 网页 开发 欢迎相互交流学习~ http://39.105.218.125:9000/

  8. UCF Local Programming Contest 2016 J题(二分+bfs)

    题目链接如下: https://nanti.jisuanke.com/t/43321 思路: 显然我们要采用二分的方法来寻找答案,给定一个高度如果能确定在这个高度时是否可以安全到达终点,那我们就可以很 ...

  9. 基础的Linux命令(二)

    本文介绍两大类命令,都是最基础的部分 系统状态监测命令 工作目录切换命令 一.系统状态监测命令 1. ifconfig 命令 用于获取网卡配置与网络状态等信息 如下图:inet后面是 IP 地址,et ...

  10. 概率-Knight Probability in Chessboard

    2018-07-14 09:57:59 问题描述: 问题求解: 本题本质上是个挺模板的题目.本质是一个求最后每个落点的数目,用总的数目来除有所可能生成的可能性.这种计数的问题可以使用动态规划来进行解决 ...