码迷,mamicode.com
首页 > 其他好文 > 详细

可恶的bash脚本的执行结

时间:2017-11-29 22:04:56      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:linux if 和for

bash之if(选择执行结构)

    特点:根据条件的逻辑判断结果选择执行的语句内容

if的单分支结构

    if 命令 ;then 命令 ;fi

结构分析:首先 判断if后命令的状态返回值,如果为真(状态返回值为0),则执行then后面的命令,fi(结束if的命令)

注意:一行中若有多个命令存在需要用分号分开

    若不习惯使用分号可书写为

    if 命令

    then 命令

    fi

if的双分支结构

    if 命令 ;then 命令;else命令;fi

结构分析:首先判断if后命令的状态返回值,如果为真(状态返回值为0),则执行then后面的命令,否则执行else后面的命令;fi结束if语句

    建议书写格式:

    if 命令 ;then

        命令

    else

        命令

    fi

注意缩进:以便于在查看是能迅速理解表达内容


if的多分支结构

    if 命令;then 命令;elif 命令;then命令;elif命令;thenml;.....else 命令;fi

结构分析:判断if后命令的状态返回值,若为真则执行then后面的命令,

若为假,则判断第一个elif后命令的状态返回值;若为真则执行该elif后的then命令

若为假,则判断下一个elif后命令的状态返回值,若为真则执行该elif后的then命令

.........

当if以及所有的elif后的所有的命令的状态返回值均为假时,执行else后的命令

fi


建议书写格式:

      if 命令 ;then

        命令

      elif 命令 ;then

        命令

      elif 命令 ;then

        命令

        ......

      else

        命令

      fi

注意if语句可以嵌套;

   如:if命令;then

        if 命令;then

            if命令;then

            ......

            else

                命令

            fi

        else

            命令

        fi    

    else

        命令

    fi



bash之for

    循环执行结构:

        格式:for 参数变量 in 变量取值表 ;do

                循环体

            done

    

for循环需要遍历的列表;可以通过以下方式生成列表

    1.直接给出列表

[root@localhost ~]# for i in 1 2 3;do echo -e "$i"; done
1
2
3

2.纯整数列表

  ①:花括号展开

{FISTNUM..LASTNUM} :FISTNUME-LASTNUM之间的包括其在内的数值

[root@localhost ~]# for i in {1..9};do echo  "$i"; done
1
2
3
4
5
6
7
8
9

{FIST,SECOND,THID,...,LAST}:参数列表

[root@localhost ~]# for i in {1,3,5,7,9};do echo  "$i"; done
1
3
5
7
9


 ②:seq命令

seq [OPTION]...LASR 列表为1到LASR的所有整数

[root@localhost ~]# for i in $(seq 5);do echo -e "$i"; done
1
2
3
4
5

seq [option]...FIRST LAST 列表为 FIRST到LAST 之间所有的整数

[root@localhost ~]# for i in $(seq 5 9);do echo -e "$i"; done
5
6
7
8
9

seq [OPTION]...FIRST n LAST 列表为 FIRST 到LAST 以n为公差的所有整数

[root@localhost ~]# for i in $(seq 5 2 9);do echo -e "$i"; done
5
7
9

注意:seq是命令在引用时应该添加 $() 
 ③:花括号展开

{FIST..LAST} :从FIST 到 LAST之间由规律的字符列表

[root@localhost ~]# for i in {a..f};do echo -e "$i"; done
a
b
c
d
e
f

 ④:命令的执行结果:

ls /etc

grep /path/to/somefile

 ⑤:通配符

[root@localhost ~]# for i in /mnt/*;do echo -e "$i"; done
/mnt/a.txt
/mnt/b.txt
/mnt/c.txt

 ⑥:某些特殊变量的值

$*,$@




可恶的bash脚本的执行结

标签:linux if 和for

原文地址:http://blog.51cto.com/wangchaode/2045797

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!