linux基本操作---shell编程 for循环(99乘法表)

linux中的for循环有很多用处:

比如跑历史数据,参数为日期,那么我们可以把日期放入for循环中,循环把日期作为参数执行

下面看一个我生产中用到的例子

[zhangshk@fonova-app02 ~]$ cat nohup_run0_100.sh 
for i in {0..100}
do
    sh /data/zhangshk/Memory_Statistics-0.0.0.1-SNAPSHOT/bin/Memory_Statistics "`date -d'-'$i' day' "+%Y%m%d00"`"
    sleep  1s    
done

这里面有for循环、有日期data的处理,对于data不熟悉的可以看看我的之前的一个帖子,至少可以对data有个大概的使用常识。
http://blog.csdn.net/zhangshk_/article/details/78787434

解释一下这个例子,首先for循环i 为0-10 ,然后$i拿这个变量 构造指定的日期,然后后台执行这个脚本。

nohup ... &表示后台执行
[zhangshk@fonova-app02 ~]$ nohup sh nohup_run0_100.sh &

for循环的格式有几种:

for i in arg1 arg2 arg3
for i in{1..10}
for((i=1;i<=10;i++))

执行体用
do
execute command
done 包裹

下面我们将几个for循环的demo

demo1:遍历参数

[root@dev-02 software]# cat test.sh
#!/bin/bash
for i in a b c 
do 
    echo $i
done

[root@dev-02 software]# sh test.sh 
a
b
c

demo2:sum求和

[root@dev-02 software]# cat sum.sh
#!/bin/bash
for i in {0..10}
do 
    sum=$((sum+i))
done
echo $sum

[root@dev-02 software]# sh sum.sh 
55

另一种写法,这种类似java中的for循环

[root@dev-02 software]# cat sum.sh 
#!/bin/bash
for((i=1;i<=10;i++))
do 
    sum=$((sum+i))
done
echo $sum

[root@dev-02 software]# sh sum.sh 
55

demo3: 双重for循环打印99乘法表

提示:这里有一个-e 表示开启转义字符,\c表示不换行 \n换行
[root@dev-02 software]# cat 99.sh 
#!/bin/bash
for((i=1;i<10;i++))
do
    for((j=1;j<=i;j++))
    do
        echo -e $i*$j =$((i*j))' \c'
    done
    echo -e '\n'
done


[root@dev-02 software]# sh 99.sh 
1*1 =1 

2*1 =2 2*2 =4 

3*1 =3 3*2 =6 3*3 =9 

4*1 =4 4*2 =8 4*3 =12 4*4 =16 

5*1 =5 5*2 =10 5*3 =15 5*4 =20 5*5 =25 

6*1 =6 6*2 =12 6*3 =18 6*4 =24 6*5 =30 6*6 =36 

7*1 =7 7*2 =14 7*3 =21 7*4 =28 7*5 =35 7*6 =42 7*7 =49 

8*1 =8 8*2 =16 8*3 =24 8*4 =32 8*5 =40 8*6 =48 8*7 =56 8*8 =64 

9*1 =9 9*2 =18 9*3 =27 9*4 =36 9*5 =45 9*6 =54 9*7 =63 9*8 =72 9*9 =81 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值