代码改变世界

shell中if/seq/for/while/until

2018-10-05 21:01  烟雨楼人  阅读(372)  评论(0编辑  收藏  举报

1.if语句格式:


 if 判断条件;then

    statement1

     statement2

fi;

例子: 判断/test/a普通文件是否存在,存在则输出yes,不存在则输出no,并创建。
 #! /bin/bash

if [ -e /test/a ] ; then

echo ok

else

touch /test/a

echo no

fi;

2.for循环格式:
 
 for val_name   in 列表; do

        循环体    //反复执行多次的就被称为循环体,多个语句组成

        语句1

        语句2

        ...

    done   

例子1:计算1-100的值
 
 #!/bin/bash
sum=0
i=0
#for i in `seq 1 100`; do      ---采用seq也行,do前面的分号一定要加
for i in {1..100}; do   --do前面的分号一定要加
  let sum="$sum+$i";   --加法前一定要写let
  let i="$i+1";
done
echo $sum;
或者:
 #! /bin/bash
sum=0
for (( i=1; i<=100; i++)) do   --一定要写双括号,do前可不加;
   let   sum="$sum+$i"
done
   echo $sum;

例子2:输出/test目录下文件。
 
 #! /bin/bash
for i in $(ls /test); do
 echo $i;
done;
3.while循环格式:
 while 条件

    do

        循环体

    done

例子:计算1-100之间所有奇数和
 
 #! /bin/bash
sum=0
i=1;
while [ $i -le 100 ]
 do
 let sum="$sum+$i"
 let i="$i+2"
done
echo $sum
4.untile格式:
 until 条件测试

do

    循环体

done

条件不满足,则循环,否则,退出,

例子:输出数字0-10
 
 #! /bin/bash
i=0
until [ $i -gt 10 ]              --条件$i大于10
do
  echo $i;
  let i=$i+1;
done
5.seq的生成使用
 
 [root@lbg test]# seq 3
1
2
3
[root@lbg test]# seq 3 5
3
4
5
[root@lbg test]# seq 3 2 8     --步长为2
3
5
7