1、if 单分支语句

if [ 条件语句 ]
  then

条件操作
fi

例子:

[root@localhost ~]# if [ 1 -eq 0 ]                    //如果1等于0
> then                                                           
> echo "正确"                                               //输出正确
> else                                                          
> echo "错误"                                              //输出错误
> fi                                                              //fi结束语句
错误

rpm -q vsftpd                                           //查询vsftpd软件是否存在
if [ $? -eq 1 ]                                            //如果echo $?等于1
   then                                                        
          yum -y install vsftpd                             //安装vsftd
fi

mount_DVD="/media/cdrom"              //定义变量mount_DVD将/media/cdrom赋值给mount_DVD
if [ ! -d $mount_DVD ]                         //如果mount_DVD不是目录
   then
         mkdir -p $mount_DVD              //创建/media/cdrom
fi                                                          //fi结束语句

=======================================================================

if多分支语句

if [ 条件语句 ]
   then

条件操作

else

条件操作
fi

if [ -d /slp ]                            //如果/slp目录存在
  then
        echo "目录已存在"     //输出目录已存在
else
       mkdir /slp                  //创建/slp目录
fi

=========================================================

(4)逻辑测试
1>格式:
[ 表达式 1 ] 操作符 [ 表达式 2 ] …
命令 1 操作符 命令 2 …
2>常用的测试操作符:
-a 或&&:逻辑与,“而且”的意思
-o 或||:逻辑或,“或者”的意思
!:逻辑否

3、if 多分支语句结构
if [ 条件语句 ]
   then

条件操作
elif [ 条件语句]
     then

条件操作
else
         条件操作
fi

read -p "请输入您的成绩(0-100):" fs
if [ $fs -ge 0 -a $fs -lt 60 ]
then
echo "$fs ,不合格"
elif [ $fs -ge 60 -a $fs -lt 70 ]
then
echo "$fs,合格"
elif [ $fs -ge 70 -a $fs -lt 85 ]
then
echo "$fs,良好"
elif [ $fs -ge 85 -a $fs -le 100 ]
then
echo "$fs,优秀"
else
echo "分数无效"
fi

=================================================

实例:Shell脚本部署YUM仓库服务

服务端运行脚本:

[root@localhost ~]# vim yumftp.sh

mount /dev/sr0 /media/cdrom &>/dev/null
if [ $? -eq ]
then
[ -d $DIR ] || mkdir -p $DIR
echo "正在从光盘拷贝数据到本地,请耐心等待"
cp -rf /media/cdrom/* $DIR
echo "$DIR 内容已拷贝完成!"
else
echo "请先放入centos7的光盘"
exit
fi echo "安装并启动vsftpd服务"
read -p "请输入本机提供的ftp服务器ip地址:" IP
rpm -qa | grep vsftpd &>/dev/null
[ $? -ne 0 ] && rpm -i /media/cdrom/Packages/vsftpd-* &>/dev/null
/etc/init.d/vsftpd start &>/dev/null &&chconfig on && echo "ftp服务已经开启" echo "设置本地yum源并建立缓存"
mkdir -p $DIR/bak &>/dev/null
mv $DIR2/* $DIR/bak &>/dev/null
echo -e "[ftp]\nname=centos7\nbaseurl=ftp://192.168.200.115/centos7\ngpgcheck=0\nenabled=1" > $DIR2/ftp.repo
yum clean all &> /dev/null
yum makecache &>/dev/null
echo "ftp源的yum仓库已建立"

客户端运行脚本:

[root@ns2 ~]# vim clientyumftp.sh

#!/bin/bash
DIR2=/etc/yum.repos.d/
read -p "请输入ftp服务器的ip地址:" IP
ping -c -i 0.1 -W $IP &>/dev/null
if [ $? -eq ]
then
mkdir -p $DIR2/bak &>/dev/null
mv $DIR2/* $DIR2/bak &>/dev/null
echo -e "[ftp]\nname=centos7\nbaseurl=ftp://192.168.200.115/centos7\ngpgcheck=0\nenabled=1" > $DIR2/ftp.repo
yum clean all &>/dev/null
yum makecache &>/dev/null
echo "ftp源yum仓库已建立"
else
echo "ftp服务器链接失败"
fi

服务端测试:

[root@localhost ~]# ./yumftp.sh
挂载光盘。将光盘内容复制到本地/var/ftp/centos7目录下
正在读取光盘
正在从光盘拷贝数据到本地,请耐心等待
/var/ftp/centos7 内容已拷贝完成!
安装并启动vsftpd服务
请输入本机提供的ftp服务器ip地址:192.168.200.115
设置本地yum源并建立缓存
ftp源的yum仓库已建立

客户端测试:

[root@ns2 ~]# vim clientyumftp.sh

[root@ns2 ~]# ./clientyumftp.sh
请输入ftp服务器的ip地址:192.168.200.115
ftp源yum仓库已建立

[root@ns2 ~]# scp 192.168.200.115:root/cli* ./
The authenticity of host '192.168.200.115 (192.168.200.115)' can't be established.
ECDSA key fingerprint is SHA256:WhmwOa3kotMQL6wth0B3Q/nBCAytuC2kBCTpEA4GJoQ.
ECDSA key fingerprint is MD5:b4:3d:85:4d:b0:66:16:f2:7b:3e:fb:50:d7:0e:b4:0f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.200.115' (ECDSA) to the list of known hosts.
root@192.168.200.115's password:
scp: root/cli*: No such file or directory
[root@ns2 ~]# ls
anaconda-ks.cfg clientyumftp.sh initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面
[root@ns2 ~]# ./clientyumftp.sh
请输入ftp服务器的ip地址:192.168.11.11
ftp服务器链接失败
[root@ns2 ~]# ./clientyumftp.sh
请输入ftp服务器的ip地址:192.168.200.115
ftp源yum仓库已建立

 

if条件语句!的更多相关文章

  1. Python —条件语句

    条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非空(null ...

  2. php简写表达式,&& or || 缩写条件语句

    有时候学的多了, 好多小细节 都忘了 ,比如 简单的表达式, 三元表达式   ?:; $aa or $bb 表达式 等等! 写一些简单的表达式,备忘! php用&&和||缩写条件语句 ...

  3. java中的条件语句(if、if...else、多重if、嵌套if)

    Java条件语句之 if 生活中,我们经常需要先做判断,然后才决定是否要做某件事情.例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S .对于这种"需要先判断条件,条件满足后才 ...

  4. javascript语句——条件语句、循环语句和跳转语句

    × 目录 [1]条件语句 [2]循环语句 [3]跳转语句 前面的话 默认情况下,javascript解释器依照语句的编写顺序依次执行.而javascript中的很多语句可以改变语句的默认执行顺序.本文 ...

  5. go语言条件语句 if else

    示例: if a < 5 { return 0 } else { return 1 } 关于条件语句,需要注意以下几点:  条件语句不需要使用括号将条件包含起来():  无论语句体内有几条语 ...

  6. Todd's Matlab讲义第4讲:控制误差和条件语句

    误差和残量 数值求解方程\(f(x)=0\)的根,有多种方法测算结果的近似程度.最直接的方法是计算误差.第\(n\)步迭代结果与真值\(x^\*\)的差即为第\(n\)步迭代的误差: \begin{e ...

  7. 5-python学习——条件语句

    5-python学习——条件语句 5-python学习——条件语句 条件语句if else形式 if else条件语句说明 测试一下 编程语言一般都由这么几个部分组成 变量 条件分支语句 循环语句 函 ...

  8. Python基础6- 流程控制之if条件语句

    Python条件语句是通过判断一条或多条条件语句的执行结果来决定执行哪条代码块的.Python 中if 语句用于控制程序的执行,基本形式为:if 判断条件: 执行语句……else: 执行语句…… #c ...

  9. Jade之条件语句

    条件语句 jade支持js中的if/elseif/else语法. jade: - var user = { description: 'foo bar baz' } - var authorised ...

  10. 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等

    [源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native  ...

随机推荐

  1. vue 无法热替换/热更新

    参考了小伙伴的解决办法: 1.https://blog.csdn.net/win7583362/article/details/65443291 虽然我并不是用对方的方法解决的. 依然还是建议大家打开 ...

  2. python 把list中的所有元素串起来变为字符串

    list1=['2','3','4'] s=''.join(list1) print(s) '234'   把元素都变为字符串  list2=[3,4,5] list2=[str(i) for i i ...

  3. 上传图片时使用crop进行裁剪

    上传图片时,往往需要对图片进行裁剪. 实现方法为: 1.引入crop.css body{background:#}.upload-container{position:absolute;left:%; ...

  4. Advanced Architecture for ASP.NET Core Web API

    转自: https://www.infoq.com/articles/advanced-architecture-aspnet-core ASP.NET Core's new architecture ...

  5. JS高级---新内容课程介绍

    重点: 原型链 重点:不同的继承 原型的另一个作用 重点:this指向要知道到底是谁   复习原型 原型链 原型的指向是否可以改变 继承 如何实现继承 原型的方式继承 借用构造函数继承 组合继承 拷贝 ...

  6. 如何在linux安装ruby2.2.2+

    背景: 想搭建redis集群但是提示需要ruby2.2.2+ 直接使用yum安装 yum -y install ruby ruby-devel rubygems rpm-build 使用ruby -v ...

  7. sql server获取查询时间

    declare @d datetime set @d=getdate() /*你的SQL脚本开始*/ /*你的SQL脚本结束*/ select [语句执行花费时间(毫秒)]=datediff(ms,@ ...

  8. [lua]紫猫lua教程-命令宝典-L1-01-04. 字符串数据

    L1[字符串]01. 单引号与双引号 没什么说得 字符串:以双引号包含 或者单引号包含 或者[[]]包含 L1[字符串]02. 长文本内容 小知识:如果用[[]]包含字符串内容 但是字符串内容里面 包 ...

  9. 【资源分享】Gmod-Expression2 - 自定义像素画生成

    *作者:BUI* 可自定义制作属于你的像素画(默认为Sans) 第77行的COLOR可编辑你想要的颜色(RGB值) 1,2,3,4分别代表第77行所定义的颜色(0代表不显示) 视频地址:传送链接 @n ...

  10. SSHException: Error reading SSH protocol banner

    当我在使用ssh  远程connect 另一台机器的server 时出现了错误,错误如下,起初以为是自己代码写的有问题,后来本地了一下看了跑的没问题,我就开始根据报错去查寻原因, 起初在论坛博客看到这 ...