学习linux脚本学习是非常重要的部分,所以就要学习编程语言进阶技术
关于流程的执行
条件选择if语句 v 注意:if语句可嵌套
格式:v 单分支
if 判断条件;then
条件为真的分支代码
fi
v 双分支
if 判断条件; then
条件为真的分支代码
else
条件为假的分支代码
fi
v 多分支
if 判断条件1; then
条件为真的分支代码
elif 判断条件2; then
条件为真的分支代码
elif 判断条件3; then
条件为真的分支代码
else
以上条件都为假的分支代码
fi
注:多支进行判断时注意缩进能更好的看清判断逻辑,if后面可使用[](test)进行判断使用。
条件判断case语句 格式:
case 变量引用 in
PAT1)
分支1
;;
PAT2)
分支2
;;
...
*)
默认分支
;;
esac
并且case支持通配符如:
*: 任意长度任意字符
?: 任意单个字符
[]:指定范围内的任意单个字符
a|b: a或b
case语句变量一般为输入变量,下面匹配必须完整匹配才能执行命令,*表示不是上面其他选项的剩下的所有情况,列如:
练习:编写脚本/root/bin/yesorno.sh,提示用户输入yes或no,并判断用户输入的是yes还是no,或是其它信息
read -p"input : " num
case $num in
yes)
echo "yes"
;;
no)
echo "no"
;;
*)
echo "其他"
;;
esac
循环执行
for循环 格式:
for 变量名 in 列表;do
循环体
done
依次将列表内的内容赋值到变量里后代入下面的命令体中,列表中一个元素进行一次循环执行直到元素耗尽循环结束
列表生成方式
①直接写出列表内容 列如:2 3 4
②已列表形式 列如:{1..100}
③命令输出结果以及变量引用 列如:$(命令) $num
④使用glob,如:*.sh
练习:计算100以内所有能被3整除的整数之和
#!/bin/bash
num0=0
for num in {1..100} ;do
num1=$(($num%3))
if [ $num1 -eq 0 ];then
num2=$num
num0=$(($num0+$num2))
fi
done
echo $num0
while 循环 格式:
while CONDITION; do
循环体
Done
此循环只有一个判断条件是否进入循环取决为条件是否“true”如果条件为“true”则一直进行循环直到条件为“false”为止
练习:使用while循环编写九九乘法表
#!/bin/bash
i=1
j=1
while ((i<10));
do
while ((j<=i));
do
m=$(($i*$j))
echo -n "$i*$j=$m "
let j++
done
let i++
j=1
echo ""
done
until 循环 和while相反
until CONDITION; do
循环体
v done
v 进入条件: CONDITION 为false
v 退出条件: CONDITION 为true