文章目录
一、for语句用法
1.1 for语句的格式
for NUM in 1 2 3
for NUM in {1..3}
for NUM in `seq 1 3` 或者 for NUM in `seq 1 2 10`
do
done
1.2 for语句的示例
二、while语句和until语句用法
2.1 while语句的格式
while 条件(只有条件为真&&时才执行,条件为假||不作任何处理)
do
done
2.2 while/until语句的示例
until只有为假才会执行?
三、if语句的用法
3.1 if 语句的格式
if [ "$1" = "start"]
then
systemctl start $2
elif [ "$1" = "stop"]
then
systemctl stop $2
.......
else
echo "error:please input start or stop after scripts!"
fi
(1)在前面的学习中,我们在条件判断时,用的都是test语句,而test语句用的条件判断比较繁琐,而我们可以用一条if语句将多个test语句的判断整合起来,if语句也是进行条件判断。if语句的判断方式是从上到下依次判断
(2)写一个if语句的简单例子。
fi表示语句结束
vim chen.sh 编写一个脚本并执行
(3)拓展一:
问题:编写一个脚本,执行脚本,提示输入文件名字,并对文件类型进行判断(目录、链接、文件),并且判断文件是否存在,当不符合所有的条件时,提示重新输入文件名称,直到我们输入exit,才能退出。(无论exit为大写还是小写 ,由于是循环所以无法使用tr),我们不但可以利用循环语句,也可以利用函数(当重复使用语句时,我们利用函数)
编写脚本并执行
将脚本优化/利用函数所写:
(4)拓展二:
问题:根据输入的不同,提示也不同
-a 建立文件/-d 删除文件/-p 备份/如果这三个条件都不满足,则报错
编辑脚本并执行
四、case语句
if语句是数序机制,他的条件执行一条一条的执行,条件在前的会优先执行,条件靠后的会“吃亏”,这种的运行效率低下。
所以引出case语句
case语句是直接找到目标条件,直接执行
case是类比的机制,将条件并发的执行,由于case已经将内容预加载过了
类似与点名机制
case 语句的格式
case $1 in
条件1)
echo yyyy
;;
条件2)
echo xxx
esac
这样的话,我们可以直接将上面if语句的拓展二中的参数条件用case表达出来。
修改后的脚本为:
测试修改成功与否