shell中常用的语句及脚本运行控制

for

shell中for循环的使用主要分为三类:数字性循环、字符性循环、路径查找

数字性循环

预备知识:关于shell中(( ))的用法

语法:

((表达式1,表达式2…))

特点:

1、在双括号结构中,所有表达式可以像c语言一样,如:a++,b–等。
2、在双括号结构中,所有变量可以不加入:“$”符号前缀。
3、双括号可以进行逻辑运算,四则运算
4、双括号结构 扩展了for,while,if条件测试运算
5、支持多个表达式运算,各个表达式之间用“,”分开

  • 第一种,类似于C中for循环
#!/bin/bash
for((i=1;i<=10;i++))
do
        echo $(expr $i \* 3 + 1)		## $()类似于``,变量替换,先执行;
done

注意:expr简单计算器,各个字符之间需要空格隔开,乘法这里面的*转义一下

  • 第二种,与seq相关
#!/bin/bash
for i in $(seq 1 2 10)				##seq 三个参数用空格隔开,分别表示起始数字,步长,终止数字
do
        echo $(expr $i + 2 \* 2 )
done
  • 第三种,{1…10}
#!/bin/bash
for i in {1..10}
do
        echo $(expr $i + 1)
done
  • 第四种,awk中的for循环
#!/bin/bash
awk 'BEGIN{for(i=1;i<10;i++) print i}'		##这里有awk自己的语法规则

字符性循环

  • 第一种
#!/bin/bash
for i in $(ls)
do
        echo $i is filename
done
  • 第二种,使用$*,循环输出脚本后的字符串。
#!/bin/bash
for i in $*
do
        echo $i is your input str!
done
  • 第三种,指定字符串
#!/bin/bash
for i in f1 f2 f3
do
        echo $i your appoint!
done
  • 第四种,以变量的方式指定字符串
#!/bin/bash
list_file="f1 f2 f3"
for i in $list_file
do
        echo $i your appoint!
done

路径查找

  • 第一种,for循环查找目录下的所有文件
#!/bin/bash
for i in /mnt/*
do
        echo $i is file in dic
done
  • 第二种,匹配对应文件类型进行for循环
#!/bin/bash
for i in $(ls *.sh)
do
        echo $i is a script!
done

解决实际问题

  • Q:教室里的前十台主机,哪一个ip是通的,把ip显示出来。
  • A:
    在这里插入图片描述

while

基础语法:

while ture
do
	程序实体
done

while示例:

  • 利用while循环计算1到100的和
    注意:let与(()) 在shell编程中是可以互换的,它们让我们可以像C语言那样写程序对于变量运算赋值

1、使用(())时,运算符两边需要有空格;
2、(())算数表达式的值在if和while判断时不用在前面加“$”;在echo输出值时需要加"$"

#!/bin/bash
i=1
sum=0
while test $i -le 100
do
         let sum=sum+$i
         ((i++)) 
done

echo $sum

while实际问题

  • Q:5s做一次系统的负载监控,显示在屏幕上
  • A:
    在这里插入图片描述

if

语法:

if 判断条件
then
    statement1
    statement2
    .....
elif 判断条件
then
	statement3
else
    statement4
fi

示例:

  • Q:写一个脚本,用文件读取的方式创建用户。
  • A:
    在这里插入图片描述测试:
    在这里插入图片描述

case

语法:

case $word in
	word1)
	action1
	;;
	word2)
	action2
	;;
	*)
	action_last
	esac	

示例:

在这里插入图片描述

exit,break,continue

区别含义
continue退出本次循环,下次的循环还会执行
break退出循环,但循环后面的函数体还会执行
exit直接就退出了

示例

continue

在这里插入图片描述效果:
在这里插入图片描述

break

在这里插入图片描述效果:
在这里插入图片描述

exit

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值