shell编程之case分支语句,for循环语句和while循环语句
Posted 世界美好與你環環相扣
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程之case分支语句,for循环语句和while循环语句相关的知识,希望对你有一定的参考价值。
shell编程之case分支语句,for循环语句和while循环语句
case语句
应用场合:某个变量存在多种取值,需要对对其中的每一种取值分别执行不同的命令
case语句的语法结构
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
……
*)
默认命令序列
esac
case语句应用实例
#!/bin/bash
#这是一个判断成绩的脚本
case $1 in
8[0-9]|9[0-9]|100)
echo "成绩优秀"
;;
6[0-9]|7[0-9])
echo "成绩良好"
;;
60)
echo "成绩合格"
;;
*)
echo "成绩不合格"
esac
for循环语句
读取不同的变量值,用来逐个执行同一组命令
应用场合:需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。“取值列表”称为for语句的执行条件
for循环语句的结构
for 变量名in取值列表
do
命令序列
down
for取值列表的表达
用具体的数表达
#/bin/bash
for a in 1 2 3 4 5
do
echo $a
done
用范围表达
#/bin/bash
for a in {1..5}
do
echo $a
done
用字母表达
#/bin/bash
for a in a b c d
do
echo hello
done
用序列表达
#/bin/bash
for a in `seq 5`
do
echo hello
done
带变量表达
#/bin/bash
i=10
for a in `seq $i`
do
echo hello
done
跟位置参数表达
#/bin/bash
for a
do
echo $a
done
用按变量++或变量 - -变达
#/bin/bash
for ((a=1;a<=4;a++))
do
echo hello
done
#/bin/bash
for ((a=4;a>1;a--))
do
echo hello
done
在文件中写入数值调用
#/bin/bash
for a in `cat /opt/wenjian.text`
do
echo hello
done
for语句应用实例
#/bin/bash
#这是一个求0到100偶数和的脚本
a=0
for b in {1..100}
do
a=$[ $a+$b ]
done
echo $a
#/bin/bash
#这是一个打印矩阵星星的脚本
read -p "请输入星星矩阵数: " p
for ((a=1;a<=p;a++))
do
for ((b=1;b<=p;b++))
do
echo -n "* "
done
echo
done
#/bin/bash
#这是一个创建指定用户的脚本
for name in `cat /opt/user.text`
do
id $name &> /dev/null
if [ $? -eq 0 ];then
echo "用户已存在"
else
echo "正在创建用户$name用户"
useradd $name
echo "正在设定$name的密码"
echo "123" | passwd --stdin $name &> /dev/null
fi
done
while语句
重复测试某个条件,只要条件成立则反复执行
while循环语句的语法结构
while 条件测试操作
do
命令序列
done
使用which循环语句时,有两个特殊的条件操作,即 true(真)和 false(假)
使用true作为条件时,命令序列无限执行下去,使用false作为条件,则循环不会执行
以下是两种死循环:
# ! /bin/bash
while true
do
echo hello
done
#! / bin/ bash
whilel :
do
echo hello
done
三种退出循环的方式
(1)break 退出while循环
#/bin/bash
#这是一个猜数字游戏的脚本
a=30
while true
do
read -p "请输入一个数字: " num
if [ $num -eq $a ];then
echo "你猜对了"
break
elif [ $num -gt $a ];then
echo "你猜大了"
elif [ $num -lt $a ];then
echo "你猜小了"
fi
done
(2)continue,是以当前变量值继续,不执行下面的操作
#/bin/bash
#这是一个猜数字游戏的脚本
a=1
while [ $a -le 10 ]
do
echo $a
if [ $a -ge 5 ];then //当a=5时会以5继续执行当前变量值,不执行a++的操作
continue
fi
let a++
done
(3)exit,退出脚本,可以自定义返回码
#/bin/bash
a=1
while [ $a -le 10 ]
do
echo $a
if [ $a -ge 5 ];then
exit 2 ?//此时 $?的值为2
fi
let a++
done
while语句应用实例
#/bin/bash
#这是一个求0-100偶数和的脚本
a=0
b=1
while [ $b -le 100 ]
do
if [[ $b%2 -eq 0 ]];then
let a=$a+$b
fi
let b++
done
echo $a
until语句的结构
重复测试某个条件,只要条件不成立则反复执行
until语句的死循环
#/bin/bash
until false
do
echo
done
until语句应用实例
#/bin/bash
until [ 1 -lt 1 ]
do
echo 11
done
以上是关于shell编程之case分支语句,for循环语句和while循环语句的主要内容,如果未能解决你的问题,请参考以下文章