Shell脚本编程(三)

目录

一、循环结构语句

1、for循环

1.1、实例1

1.2 实例2

1.3、实例3

2、while循环

2.1、实例1

3、until循环

3.1 实例1

二、条件结构语句

1、if语句

1.1、实例1

2、case语句

2.1、实例1


一、循环结构语句

        Shell常见的循环语句有for循环、while循环和until循环语句。

1、for循环

语法结构:

for 变量 in 列表

        do

                操作

        done

        列表是在for循环的内部要操作的对象,可以是字符串也可以是文件,如果是文件则为文件名。

1.1、实例1

        编写一个Shell程序test11,功能是将列表中的值:a,b,c,e,I,2,4,6,8用循环的方式把字符和数字分开两行输出。

#! /bin/bash

for i in a,b,c,e,I 2,4,6,8
do
echo $i
done

 注意:循环中列表中的空格可表示换行。

        执行结果如下: 

1.2 实例2

        编写一个Shell程序test12,功能是删除指定文件夹中的所有文件。

#! /bin/bash

for i in /mnt/d/test/trash/*
do
    rm $i
echo "$i has been deleted!"
done

        执行结果如下:

1.3、实例3

        编写一个Shell程序test13,功能是求1~100的加和。

#! /bin/bash

total=0
for((i=1;i<=100;i++));
do
    total=`expr $total + $i`
done
echo "The result is $total"

        执行结果如下:

注意: for语句中的双括号不能省略,最后的分号可有可无,表达式expr中“+”两侧的空格不能省,否则会成为字符串的连接。

2、while循环

语法结构:

while

        do

                操作

        done

        只要表达式为真,do和done之间的操作就一直会进行。

2.1、实例1

         编写一个Shell程序test14,功能是求1~100的加和。

#! /bin/bash

total=0
num=0

while((num<=100));
do
    total=`expr $total + $num`
    num=`expr $num + 1`
done

echo "The result is $total"

        执行结果如下:

3、until循环

语法结构:

until 表达式

        do

                操作

        done

重复do和done之间的操作直到表达式成立为止。

3.1 实例1

        编写一个Shell程序test15,功能是求1~100的加和。

#! /bin/bash

total=0
num=0

until [ $num -gt 100 ]
do
    total=`expr $total + $num`
    num=`expr $num + 1`
done

echo "The result is $total"

        执行结果如下:

二、条件结构语句

        Shell程序中的条件语句主要有if语句与case语句。

1、if语句

语法结构:

if 表达式1 then

操作

elif 表达式2 then

操作

elif 表达式3 then

操作

……

else

操作

fi

        Linux中的if的结束标志是将if反过来写成fi,而elif其实是else if的缩写。其中,elif理论上可以有无限多个。

1.1、实例1

        编写一个Shell程序test16,功能是输出1~10之间的奇数。

#! /bin/bash

for((i=0;i<=10;i++));
do
if (($i%2==1))
then
    echo "$i"
fi
done

        执行结果如下:

2、case语句

语法结构:

case 表达式 in

值1|值2)

操作;;

值3|值4)

操作;;

值5|值6)

操作;;

*)

操作;;

esac

        case的作用是当字符串与某个值相同时就执行那个值之后的操作。如果同一个操作对于多个值,则使用“|”将各个值分开,在case的每一个操作的最后面都有两个"; ;"分号是必需的。

2.1、实例1

        编写一个Shell程序test17,功能是根据不同的用户登录输出不同的反馈结果。

#! /bin/bash

case $USER in
administrator)
echo "You are administrator!";;
user1)
echo "You are user1!";;
root)
echo "You are root!";echo "Welcome!";;
*)
echo "Who are you?";;
esac

        执行结果如下:

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猿核试Bug愁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值