Dream.

Linux中的流程控制语句
if 条件测试语句条件测试语句可以让脚本根据实际情况自动执行相应的命令。,if 语 句分为单分支结构、双分支结构、...
扫描右侧二维码阅读全文
13
2019/06

Linux中的流程控制语句

记得收藏哟!

  1. if 条件测试语句
  2. 条件测试语句可以让脚本根据实际情况自动执行相应的命令。,if 语 句分为单分支结构、双分支结构、多分支结构;if 条件语句的单分支结构由 if、then、fi 关键词组成,而且只在条件成立后才执行预设的 命令,相当于口语的“如果……那么……”。单分支的 if 语句属于最简单的一种条件判断结构

记得收藏哟!
下面使用单分支的 if 条件语句来判断/media/cdrom 文件是否存在,若存在就结束条件判 断和整个 Shell 脚本,反之则去创建这个目录:

vim 1.sh 
#!/bin/bash 
DIR="/media/cdrom" 
if [ ! -e $DIR ] 
then 
mkdir -p $DIR 
fi 

面使用双分支的 if 条件语句来验证某台主机是否在线,然后根据返回值的结果,要么 显示主机在线信息,要么显示主机不在线信息。这里的脚本主要使用 ping 命令来测试与对方 主机的网络联通性,而 Linux 系统中的 ping 命令不像 Windows 一样尝试 4 次就结束,因此为 了避免用户等待时间过长,需要通过-c 参数来规定尝试的次数,并使用-i 参数定义每个数据 包的发送间隔,以及使用-W 参数定义等待超时时间。

vim 2.sh 
#!/bin/bash 
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

用过$?变量,作用是显示上一次命令的执行返回值。若前面的那条语 句成功执行,则$?变量会显示数字 0,反之则显示一个非零的数字(可能为 1,也可能为 2, 取决于系统版本)。


bash 1.sh 192.168.10.10

if 条件语句的多分支结构由 if、then、else、elif、fi 关键词组成,它进行多次条件匹配判 断,这多次判断中的任何一项在匹配成功后都会执行相应的预设命令,相当于口语的“如 果……那么……如果……那么……”。if 条件语句的多分支结构是工作中最常使用的一种条件 判断结构,尽管相对复杂但是更加灵活

2.for 条件循环语句
for 循环语句允许脚本一次性读取多个信息,然后逐一对信息进行操作处理,当要处理的数据 有范围时,使用for循环语句再适合不过了。

3.while 条件循环语句
while 条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往 往在执行前并不确定最终执行的次数,完全不同于 for 循环语句中有目标、有范围的使用场 景。while 循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执 行,为假就结束循环。
我们来使用多分支的 if 条件测试语句与 while条件循环语句,编写一个用来猜测数值大 小的脚本 Guess.sh。该脚本使用$RANDOM 变量来调取出一个随机的数值(范围为 0~32767), 将这个随机数对 1000 进行取余操作,并使用expr命令取得其结果,再用这个数值与用户通过read 命令输入的数值进行比较判断。这个判断语句分为三种情况,分别是判断用户输入的数值是等于、 大于还是小于使用 expr 命令取得的数值。

vim Guess.sh 
#!/bin/bash 
PRICE=$(expr $RANDOM % 1000) 
TIMES=0 
echo "商品实际价格为 0-999 之间,猜猜看是多少?" 
while true 
do read -p "请输入您猜测的价格数目:" INT 
let TIMES++ 
if [ $INT -eq $PRICE ] ; then 
echo "恭喜您答对了,实际价格是 $PRICE" 
echo "您总共猜 g $TIMES 次" 
exit 0 
elif [ $INT -gt $PRICE ] ; 
then echo "太高了!" 
else 
echo "太低了!" 
fi 
done 

4.case 条件测试语句
case 条件测试语句和 switch 语句的功能非常相似!case 语句是在多个范围内匹配 数据,若匹配成功则执行相关命令并结束整个条件测试;而如果数据不在所列出的范围内, 则会去执行星号(*)中所定义的默认命令。

 vim Checkkeys.sh 
#!/bin/bash 
read -p "请输入一个字符,并按 Enter 键确认:" KEY 
case "$KEY" in 
[a-z]|[A-Z]) 
echo "您输入的是 字母。" 
;; 
[0-9]) 
echo "您输入的是 数字。" 
;; 
*) 
echo "您输入的是 空格、功能键或其他控制字符。" 
esac 

bash Checkkeys.sh 请输入一个字符,并按 Enter 键确认:6 您输入的是 数字。 [root@linuxprobe ~]# bash Checkkeys.sh 请输入一个字符,并按 Enter 键确认:p 您输入的是 字母。 [root@linuxprobe ~]# bash Checkkeys.sh 请输入一个字符,并按 Enter 键确认:^[[15~ 您输入的是 空格、功能键或其他控制字符
Last modification:October 13th, 2019 at 02:25 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment

https://www.apicp.cn/API/qqol/api.php?qq=867342200