shell循环例题精选

本文精选了多个Linux Shell循环的实战案例,包括不同场景下的代码示例,涵盖基础到进阶,帮助读者深入理解Shell循环的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例
案例一
示例代码

[root@bogon ~]# vim xunhuan.sh 

#! /bin/bash

#编写一个shell脚本,它把第二个位置参数及以后的各个参数指定的文件复制到的第一个参数指定的目录中
#分析:  (1)至少要有两个位置参数
       #(2)第一个位置参数为目录,后面都为文件
       #(3)使用循环的方式将文件复制到指定目录
if [ $# -ge 2 ]
then
   #如果不存在则创建目录
   [ -d $1 ] || mkdir -p $1
   #后面都为文件
   for ((i=2;i<=$#;i++))
   do
       if [ ! -f ${!i} ]
       then
               echo "参数不合规定!"
               exit 3
       else
               \cp  ${!i} $1
       fi
   done
else
       echo "参数不合规定!"
       exit 4
fi
结果:
[root@bogon ~]# vim xunhuan.sh 
[root@bogon ~]# ./xunhuan.sh 
参数不合规定!  
[root@bogon ~]# ./xunhuan.sh /root/chen /etc/passwd
[root@bogon ~]# ll /root/chen
总用量 4
-rw-r--r--. 1 root root 1452 3月   5 13:26 passwd

案例二
示例代码

#! /bin/bash
  
#编写脚本,利用for循环将当前目录下的.c文件移动到指定目录下,并按照文件大小排序移动后的目录
#分析:  (1)首先手动键入指定目录
        #(2)移动的文件按照从大到下的循序排列

read -p "请输入指定目录:" var
ls -d $var &>/dev/null
var1=`echo $?` #用于判断$var是否存在
var2=`ls -l  | tr -s " " |cut -d" " -f9 | egrep *.c$` #取出当前目录下的以.c结尾的所有文件名
if [ $var1 -eq 0 ]
then
        for i in $var2
        do
                mv $i $var && cd $var && ls -lS
        done
        echo $i
else
        mkdir -p $var
        echo "创建$var目录"
        for i in $var2
        do
                mv $i $var && cd $var && ls -lS
        done
fi

案例三
代码示例

#! /bin/bash

#编写一个shell脚本,打印任何数的乘法表
#例如:当你输入3时,显示如下
#3*1 = 3
#3*2 = 6
#3*3 = 9
#3*4 = 12
#3*5 = 15
#...
#3*9 = 27

read -p "请输入一个数字:" num
    for ((i=1;i<=9;i++))
    do
        sum=$(($num*$i))
        echo "$num"*"$i" = "$sum"
    echo
    done

法二

#! /bin/bash
  
#编写一个shell脚本,打印任何数的乘法表
#例如:当你输入3时,显示如下
#3*1 = 3
#3*2 = 6
#3*3 = 9
#3*4 = 12
#3*5 = 15
#...
#3*9 = 27

while true
do
    read -p "请输入一个数:" num
    if let num++
    then
            for ((i=1;i<=9;i++))
            do
                sum=$(($[$num-1]*$i))
                echo "$[$num-1]"*"$i" = "$sum"
            done
            break
    else
        echo "请输入整数"
    fi
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值