可恶的bash脚本的执行结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可恶的bash脚本的执行结相关的知识,希望对你有一定的参考价值。

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.直接给出列表

[[email protected] ~]# for i in 1 2 3;do echo -e "$i"; done
1
2
3

2.纯整数列表

  ①:花括号展开

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

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

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

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


 ②:seq命令

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

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

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

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

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

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

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

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

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

 ④:命令的执行结果:

ls /etc

grep /path/to/somefile

 ⑤:通配符

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

 ⑥:某些特殊变量的值

$*,[email protected]




以上是关于可恶的bash脚本的执行结的主要内容,如果未能解决你的问题,请参考以下文章

关于bash如何进行并发执行!

Linux bash基础特性二

Bash的变量类型

在 Bash 脚本中执行 Apache Spark (Scala) 代码

如何执行bash脚本时,显示行数

代码片段:Shell脚本实现重复执行和多进程