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. ubuntu 切换用户

    app切换root ubuntu: sudo su - app sudo su - root centos : sudo su ############ root 切换app sudo su - ap ...

  2. 虚拟机下的Linux连接校园网上网问题

    安装了CentOS7后,本地Windows系统连接用的是校园网,虚拟机用的是桥接模式,无法上网. 解决的办法是:找到连接的校园网的网卡,给虚拟机的VMnet8共享. 步骤:打开[网络和共享中心]-[更 ...

  3. tf.train.examle函数

    在自定义数据集中: example = tf.train.Example(features=tf.train.Features(feature={ 'img_raw': tf.train.Featur ...

  4. 计算几何-Ang-Rad-Vector

    This article is made by Jason-Cow.Welcome to reprint.But please post the article's address. 旋转,跳跃,梦境 ...

  5. CDH仅完成 0/3 个步骤。首个失败:主机 node6 (id=2) 上的客户端配置 (id=1) 已使用 1 退出,而预期值为 0。

      CDH仅完成 0/3 个步骤.首个失败:主机 node6 (id=2) 上的客户端配置 (id=1) 已使用 1 退出,而预期值为 0 javaHome出现了问题 JAVA_HOME并不是根据环境 ...

  6. EVE-NG镜像模板资源占用统计

    转:http://www.emulatedlab.com/forum.php?mod=viewthread&tid=432&extra=page%3D1 EVE  Image fold ...

  7. Atcoder Beginner Contest151E(排列组合)

    排列组合 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; ]; ; ]; long lo ...

  8. go基础_控制语句

    if控制语句 说明:(1)if后面的条件语句不用加括号 (2)if后面可以跟一个简单的初始化语句,并以分号分割,初始化语句中的变量的作用域是整个if语句块 (3)if语句的条件语句需要尽量简单 (4) ...

  9. 对于使用secureFX上传文件到centos7 的时候,以及不同的用户解压文件,对于文件操作权限的实验

    本以为以一个用户胡如root登录了SecureFx,之后选择了root的家目录下的一个software目录,之后上传 以root用户远程登录LINUX系统 查看文件 之后再验证普通用户zhaijh登录 ...

  10. mac 电脑安装express、npm…… 报 ‘Missing write access to /usr/local/lib/node_modules’错误解决办法

    mac电脑安装express框架.npm…… 报 Missing write access to /usr/local/lib/node_modules 错误 终端输入sudo chown -R $U ...