Shell编程之一:IF条件语句

IF条件语句是使用最广泛的shell编程语句之一。
if条件语句的单分支结构由if、then、fi组成,相当于口语的如果—那么—
f条件语句的双分支结构由if、then、else、fi组成,相当于口语的如果—那么—或者—那么—
一、
[[email protected] ~]#vim test01.sh
#!/bin/bash
#by authos herrychen

NUM1=300
NUM2=400

if(($NUM1 > $NUM2));then
echo “This $NUM1 greater $NUM2 !”
else
echo “This $NUM2 greater $NUM1 !”
fi

#cat test01.sh
#sh test01.sh
解释:"$"后面引用的是系统变量,双括号(( ))是支持四则运算的。
结果:
[[email protected] ~]# sh test01.sh
This 400 greater 300 !

二、检查目录,没有就创建。
[[email protected] ~]#vim test02.sh
#!/bin/bash
#by authos herrychen

DIR=/home/liveuser/shelltest

if [ ! -d $DIR ];then
sudo mkdir -p $DIR
echo “This $DIR Create success!”
else
echo “This $DIR is exist, exit!”
fi

# cat test02.sh
#sh test02.sh
结果:
[[email protected] ~]# sh test02.sh
This /home/liveuser/shelltest Create success!

三、ping 单个IP地址
[[email protected] ~]#vim test03.sh
#!/bin/bash
#by authos herrychen
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo “Host $1 is on-line.”
else
echo “Host $1 is off-line.”
fi

# cat test03.sh
解释: -c、-i、-w都是ping的参数,表示ping 的数量、间隔、timeout。
$1是在运行shell脚本传的第一个参数,在shell中&"后面则是一个命令,> /dev/null表示将标准输出重定向到/dev/null这个文件,把/dev/null看作“黑洞”。它等价于一个只写文件,并且所有写入它的内容都会永远丢失,而尝试从它那读取内容则什么也读不到。然而,/dev/null对命令行和脚本都非常的有用。

结果:
[[email protected] ~]# sh test03.sh 192.168.1.129
Host 192.168.1.129 is on-line.
[[email protected] ~]# sh test03.sh 192.168.1.3
Host 192.168.1.3 is off-line.

四、ping 某个网段的IP地址
Shell编程之一:IF条件语句
解释:脚本显示了一些乱码,只能以图片形式发布了。
for i in就是给i赋值1至20,
$? 变量表示上一条命令执行后的返回值,等于0表示执行成功就显示up,不等于0表示执行失败,就显示down。

五、检查文件是否存在。
#!/bin/bash
#by authos herrychen
if [ -f /home/liveuser/test.txt ]
then
echo “File exists”
else
echo “file does not exist”
fi

# cat test05.sh
结果:[[email protected] ~]# sh test05.sh
File exists

六、判断大概时间(早、中、晚)
Shell编程之一:IF条件语句
解释:(date +%H)会去取系统的24小时的那个小时值。
变量$ HOUR大于或等于0 、小于或等于11就显示早上好,不匹配接着执行,$ HOUR大于或等于12 、小于或等于17就显示中午好,都不匹配,就显示晚上好。