shell脚本实例精讲 shell脚本中的各种分支结构用法都在本文了(附带实例)
关注上方浩道linux,回复资料,即可获取海量linux、Python、网络通信等学习资料!前言
大家好,这里是浩道linux,主要给大家分享linux、python、网络通信相关的IT知识平台。
本文给大家汇总shell脚本中的各种分支结构,让你对shell中分支结构不再陌生,同时也方便大家对shell分支相关知识有个全面回顾。
shell编程中有多种分支结构,包括if条件语句分支、for语句分支、while语句分支、case语句分支。
一、shell中if条件语句分支
任何一门编程语言总少不了if条件语句分支,同样shell脚本编程中,if条件语句分支同样显得至关重要。if条件语句分支,我们可以简单理解为:如果...那么...。shell脚本编程中的if条件语句分支有三种。分别是:单分支语句结构、双分支语句结构、多分支语句结构。下面一一分析if条件语句分支,通过简单的举例,让你快速掌握其基本脚本编写技巧。1、if单分支语句结构
第一种语句写法如下:
if ; then
执行指令
fi
第二种语句写法如下:
if
then
执行指令
fi
这里笔者推荐大家掌握第一种写法,因为其结构清晰,不易出错辅助论坛,注意以上语
句的缩进是通过tab键进行缩进的。
以下举例说明if单分支语句用法:
例子:定义一个数a为100,判断a是否大于50,大于则输出:a大于50。
具体脚本程序如下:
#!/usr/bin/bash
a=100
if [ $a -gt 50 ];then
echo "a大于50"
fi
脚本执行结果如下图所示:
2、if双分支语句结构
if ;then
执行指令
else
执行指令
fi
以下举例说明if单分支语句用法:
例子:手动分别输入两个不一样数,判断两个数的大小。当第一个大于第一个
数时,则输出:第一个数大于第二个数!当第二个大于第一个数时,则输出:
第二个数大于第一个数!
具体脚本程序如下:
#!/usr/bin/bash
#本程序实现手动输入两个数,并且判断其大小。by:浩道linux
#提示分别输入两个要判断的数
echo "请输入两个不一样的数:"
read -p "请输入第一个数:" a
read -p "请输入第二个数:" b
if [ $a -gt $b ];then
echo "第一个数大于第二个数!"
else
echo "第二个数大于第一个数!"
fi
脚本执行结果如下图所示:
3、if多分支语句结构
if ;then
执行指令
elif ;then
执行指令
else
执行指令
fi
例子:手动分别输入两个数,判断两个数的大小。当第一个大于第一个数时,
则输出:第一个数大于第二个数!当第二个大于第一个数时,则输出:第二个
数大于第一个数!当输入的两个数相等,则输出:第一个数等于第二个数!
具体脚本程序如下:
#!/usr/bin/bash
#本程序实现手动输入两个数,并且判断其大小。by:浩道linux
#提示分别输入两个要判断的数
echo "请输入两个数:"
read -p "请输入第一个数:" a
read -p "请输入第二个数:" b
if [ $a -gt $b ];then
echo "第一个数大于第二个数!"
elif [ $a -lt $b ];then
echo "第二个数大于第一个数!"
else
echo "第一个数等于第二个数!"
fi
脚本执行结果如下图所示:
二、shell中for语句分支
在诸多编程语言总少不了for语句分支,同样shell脚本编程中,for语句分支同样显得至关重要。下面通过简单的举例,让你快速掌握for语句基本脚本编写技巧。
1、for语句第一种语法:
for 变量 in 变量取值列表
do
执行指令
done
实例:通过for语句,打印1-10的数字。
具体代码如下:
具体代码如下:
#!/usr/bin/bash
#该脚本实现打印1-10的数字
for i in {1..10}
do
echo $i
done
代码执行结果如下图所示:
2、for语句第二种语法:
for 变量 `命令`
do
执行指令
done
实例:通过for语句,打印出/home/目录下所有文件或目录。
先看看/home/目录下的所有文件或目录shell脚本实例精讲shell脚本实例精讲,如下图:
具体代码如下:
#!/usr/bin/bash
#打印出/home/目录下的所有文件或目录。by:浩道linux
for i in `ls home/`
do
echo $i
done
代码执行结果如下图所示:
3、for语句第三种语法:
for ((初始值; 循环控制; 变量变化))
do
执行指令
done
实例:通过for语句,求1-100中整数的和。
具体代码如下:
#!/usr/bin/bash
#通过for语句求1-100中所有整数的和。by:浩道linux
sum=0
for (( i=1;i<=100;i++ ))
do
sum=$(( $sum + $i ))
done
echo "1-100中所有整数的和为:$sum"
代码执行结果如下图所示:
以上三种for语句已经讲解完,当然,for语句也支持嵌套,以下通过for嵌套语句,下面通过一个实例,展开其嵌套的具体用法。
实例:通过for语句,打印出九九乘法表。
具体代码如下:
#!/usr/bin/bash
#通过for语句打印九九乘法表。by:浩道linux
for(( i=1;i<10;i++ ))
do
for((j=1;j<=i;j++))
do
echo -ne "$i"x"$j=$(($i*$j))t"
done
echo "" #换行
done
代码执行结果如下图所示:
三、shell中while语句分支
众所周知,不少编程语言中,都有着循环语句,while循环扮演着举足轻重的地位。同样,shell编程中,while循环语句也是我们必须要学习的。while语法知识比较简单,下面主要通过大量举例,让大家掌握其语法。
while语句的语法:
while
do
执行指令
done
即当成立时,执行指令。需要注意while语句中的死循环。
实例1:通过while语句,求1-100所有整数的和。
具体代码为:
#!/usr/bin/bash
#通过while语句求1-100中所有整数的和。by:浩道linux
i=1
sum=0
while [ $i -le 100 ]
do
let sum=sum+$i
let i=i+1
done
echo "1-100的所有整数和为:$sum"
代码执行结果如下图:
实例2:通过while语句,求1-100中所有奇数的和。
具体代码为:
#!/usr/bin/bash
#通过while语句求1-100中所有奇数的和。by:浩道linux
i=1
sum=0
while [ $i -le 100 ]
do
let sum=sum+$i
let i=i+2
done
echo "1-100中所有奇数的和为:$sum"
代码执行结果如下图所示:
while语句同break语句的使用:
break是终止循环。
实例3:在死循环中,满足n=6的条件时,则终止循环。
具体代码如下:
#!/usr/bin/bash
n=0
while true
do
let n++
if [ $n -eq 6 ]; then
break
fi
echo $n
done
代码执行结果如下图所示:
while语句同continue语句的使用:
continue是跳出当前循环。
实例4:在死循环中,满足n=4的条件时,则终止循环。
具体代码如下:
#!/usr/bin/bash
n=0
while [ $n -lt 6 ]
do
let n++
if [ $n -eq 4 ];then
continue
fi
echo $n
done
代码执行结果如下图所示:
通过结果可以看出,当变量n=4时,continue跳出了当前循环,没有执行下一步的echo $n语句。
四、shell中case语句分支
case语句主要用于选择性来执行对应的命令,下面为大家讲解shell编程中case语句的用法。
case语句的语法主要是:
case $变量名 in
模式1)
执行命令1
;;
模式2)
执行命令2
;;
模式3)
执行命令3
;;
*)
不符合以上模式时,默认执行命令
esac
case语句的主要特点如下:
1、case行尾必须为单词“in”。
2、每一个模式必须以右括号“)”结束。
3、命令结尾以双分号“;;”结束。
4、匹配模式中可以是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。
5、最后的“*)”表示默认模式,当前面的各种模式均无法匹配该变量时,将执行“*)”后的执行命令。
实例:写代码实现:提示用户输入内容:剪刀或石头或布,并且输出用户输入的内容,当用户输入的不是那三类内容,直接输出内容为:输入非法操作。
具体代码如下:
#!usr/bin/bash
#该代码实现:提示用户输入内容:剪刀或石头或布,并且输出用户输入的内容,
#当用户输入的不是那三类内容,直接输出内容为:输入非法操作。
#by:浩道linux
echo "##########################################"
echo "请输入以下任意一个内容:剪刀,石头,布"
read -p "请你想好要输什么:" YangShi
case $YangShi in
剪刀)
echo "你输入的是:剪刀"
;;
石头)
echo "你输入的是:石头"
;;
布)
echo "你输入的是:布"
;;
*)
echo "输入非法操作"
esac
代码执行结果如下图所示:
结语
本文介绍了shell中各种分支结构语法及运用,希望能够通过通俗易懂的介绍,让大家真正在有限的时间掌握更多更有用的知识。
往期精彩内容回顾
shell脚本中常见的运算符用法都在本文了(建议收藏)
网工的私房菜,15K+网络运维大咖都在用这些工具!
总监给新员工开出了18K高薪,而不愿为6年工龄的我涨薪3K!
一文带你创建Docker的网络驱动器及自定义容器网络
更多精彩
来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!