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. 写一个scrapy中间件--ip代理池

    middleware文件 # -*- coding: utf-8 -*- # Define here the models for your spider middleware # See docum ...

  2. VsCode从零开始配置一个属于自己的Vue开发环境

    vscode vue VsCode算是比较热门的一个代码编辑器了,全名Visual Studio Code下载地址:点我去下载插件众多,功能齐全,我在平常开发过程中都是用的它,整理了些自认好用的插件, ...

  3. nuxt.js如何实现同级目录下建多个动态路由,并将链接设置.html后缀

    nuxt.js中如果在同级目录中建两个_xxxx.vue的动态路由文件,那么页面跳转始终是跳的一个页面,如何解决这个问题呢?下面举个栗子: 第一步:新建两个页面文件 第二步:在nuxt.config. ...

  4. js 行走的小女孩 面向对象

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Pending 打断点

    pending 英['pendɪŋ],美['pɛndɪŋ] a. 未决定的, 待决的, 行将发生的, 向外伸出的prep. 在等待...之际, 直到...时为止, 在...期间, 在...过程中 pe ...

  6. 什么是yarn,如何使用yarn安装项目依赖

    一.yarn的简介: Yarn是facebook发布的一款取代npm的包管理工具. 二.yarn的特点: 1.速度超快. Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载. 同时利用并行下载 ...

  7. C/C++书籍分享(百度网盘版)

    作为第一篇博客,该写一些什么好呢,毕竟作为技术博客开创的,不能随便闲谈不是. 那就分享一些书籍作为见面礼吧.链接里面包含有大量的C++学习用书籍,包含了从入门到进阶的大部分高质量书籍,注意仅用作个人学 ...

  8. Java-迭代器(新手)

    //导入的包.import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;//创建的一个类.pub ...

  9. 记录一次云主机部署openstack的血泪史

    看见这个部署成功的留下了激动的泪水 经过长时间的BUG苦肝终于成功部署成功  部署的环境2vCPU 8GB 阿里云主机,部署成功以后内存占用确实蛮高的 记录这一次踩坑,给后来者避免踩坑时间,个人踩坑踩 ...

  10. C 2013笔试题

    1.把整数分解成素数 如90=2*3*3*5 [见2015年] 方法一: int main() { int n, i=2; printf("\nInput:"); scanf(&q ...