shell基础-02 循环和语句 (if语句、for循环、while循环、case语句、循环控制)

1. if语句

1.1 单分支

if [ 条件 ]
  then
    命令
fi

说明:如果满足条件,则执行命令,否则不执行该if语句。

1.2 双分支

if [ 条件 ]
  then
    命令1
  else
    命令2
fi

如果满足条件,则执行命令1,否则执行命令2。

1.3 多分支

if [ 条件1 ]
  then
    命令1
  elif [ 条件2 ]
    命令2
……
  else
    命令n
fi
  • 如果满足条件1,则执行命令1;如果满足条件2,则执行命令2;否则执行命令n。
  • elif 可以写多个

2. for循环

2.1 shell风格

2.1.1 语法

for 变量名 in 列表
  do
    循环体
done

in后边写一个列表即可,不必加括号、引号之类。方法如下:

2.1.2 直接列出列表内容

for i in 1 2 3

for i in [1,2,3]

2.1.3 连续的列表

for i in [1..10]

2.1.4 执行命令创建的列表

  • 语法
for i in $(命令)
  • 利用seq命令
for i in $(seq 200) #从1~200
for i in $(seq 100 200) #从100~200
  • 利用cat/ls等命令
for i in $(cat 文件名)

2.2 C语言风格

for ((i=0;i<=100;i++))
  do
    循环体
done

2.3 命令行执行for循环

  • 语法
# for 条件;do 循环体;done

说明:为了方便,可以把循环题用括号扩起来。

  • 条件
    shell风格和C语言风格都可用

  • 示例

# for((i=0;i<=10;i++));do echo $i;done

# for i in $(seq 10);do echo $i ;done

# for i in `cat 1.txt`;do echo $i;done

2.4 awk的for循环

说明:每行打印10遍

# awk '{for(i=0;i<=10;i++){print $0}}' 1.txt

3. while循环

3.1 语法

while 条件
  do
    循环体
done

3.2 示例

while [ $i -gt 10 ]
while 0

4. case语句

4.1 语法

case $变量 in
  "值1")
    命令1-1;
    命令1-2;;
  "值2")
    命令2;;
……
  *)
    命令n;;
esac

4.2 值与正则

  • 值表示一个连续范围:[1-9]
  • 值表示连个其中一个:A|B
case i in
  "[1-5]"echo 'cat';;
  "6|7"echo 'dog';;
……
  *)
    命令n;;
esac

5. 循环控制

  • exit
    退出整个程序

  • break
    结束当前循环,跳出本层循环

  • break1
    跳出一层循环,break2 跳出两层循环。

  • continue
    跳出本循环剩余代码

  • next 下一行


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值