shell程序设计的流程控制及其命令分组

来源:互联网 发布:淘宝一元拍是真的吗 编辑:程序博客网 时间:2024/04/30 08:23

1、test测试命令

①数值测试

· -eq:等于则为真

· -ne:不等于则为真

· -gt:大于则为真

· -ge:大于等于则为真

· -lt:小于则为真

· -le:小于等于则为真

②字符串测试

· = :等于则为真

· != :不相等则为真

· -z 字符串:字符串长度伪则为真

·  -n 字符串:字符串长度不伪则为真

③文件测试

· -e文件名:如果文件存在则为真

· -r文件名:如果文件存在且可读则为真

· -w文件名:如果文件存在且可写则为真

· -x文件名:如果文件存在且可执行则为真

· -s文件名:如果文件存在且至少有一个字符则为真

· -d文件名:如果文件存在且为目录则为真

· -f文件名:如果文件存在且为普通文件则为真

· -c文件名:如果文件存在且为字符型特殊文件则为真

· -b文件名:如果文件存在且为块特殊文件则为真

④if条件语句

if 条件命令串

then

    条件为真时的命令串

else

    条件为假时的命令串

fi

⑤for循环

for 变量名

[in 数值列表]

do

若干个命令行

done

变量名可以使用户选择的任何字符串,如果变量名是var,则在in之后给出的数值将顺序替换循环命令列表中的$var。如果省略了in,则变量var的取值将是位置参数。对变量的每一个可能的赋值都将执行do和done之间的命令列表


⑥while和until循环

while循环:

while

若干个命令行1

do

若干个命令行2

done


until循环:

until

若干个命令行1

do

若干个命令行2

done


⑦case条件选择

格式为:

case string in

exp-1)

若干个命令行1

;;

exp-2)

若干个命令行

;;

*)

其他命令行

esac


shell通过计算字符串string的值,将其结果依次和表达式exp-1、exp-2等进行比较,知道找到一个匹配的表达式为止,如果找到了匹配项则执行它下面的命令,知道遇到一对分号(;;)为止


⑧无条件控制语句break和continue

break用于立即终止当前循环的执行,而continue用于不执行中后面的语句而立即开始下一个循环的执行,这两个语句只有放在do和done之间时才有效

(1)函数定义的基本格式:

functionname

{

    若干命令行

}

调用函数的格式为:

functionname param1 param2......

⑨命令分组

在shell中有两种命令分组的方法——()和{},前者shell执行()中的命令时将再创建一个新的子进程,然后这个子进程去执行圆括弧中的命令。{}用于将顺序执行的命令的输出结果用于另一个命令的输入(管道方式)。当我们真正使用圆括弧和花括弧时,则需要在其前面加上转义符(\);以便让shell知道他们不是用于命令执行的控制所用。


0 0
原创粉丝点击