if for while等

if 语句

if 条件测试命令

then

命令序列1

else

命令序列2

fi

case 变量值 in

模式1)

命令序列1

;;

模式2)

命令序列2

;;

.............

*)

默认执行的命令序列

esac

case行尾必须时in 每一模式都要以)结束

除了最后一行*的不用双分号,其他的命令序列结束都要以双分号结束

最后的*)表示默认序列,当使用前面的各种模式都无法匹配该变量时,将执行*)的命令序列

for 变量名 in 取值列表

do

命令序列

done

for 语句就是从取值列表里取值,然后给变量名去执行命令序列,等到取值列表的值取完了,才结束循环,取值列表里的数以空格间隔,,,但是用空格间隔的连续序列,太过于麻烦,,,所以可以使用{1..5}来表示连续的序列(俩个点)

但是如果是不连续的数字,要用到seq命令

seq 尾数

seq 首数 尾数

seq 首数 增量 尾数

-w 等宽

for循环的序列不一定是数字,可以是文件或其他的

while 循环语句(实现循环次数不确定的循环)

while 条件测试命令

do

命令序列

done

先判断条件成立不成立,成立就执行命令序列,每执行一次就判定一次条件,条件如果不成立,就推出

还可以通过 while 实现对文件按行进行遍历(跟cat命令差不多)

while read line

do

命令序列-----------可以就直接是$line,把line看成是一个变量

done < 指定文件

while true;do-----------永远都是正确的,死循环

break-----结束循环,不结束程序

continue-----------结束本轮循环,开始下一轮循环

exit-------如果程序执行到exit语句的位置,那么将立即结束并推出程序,exit语句之后的代码都不会被

执行 在exit 后加一个数 例如 exit 34 那么执行 echo $? 的值就是34,,自定义返回的值是多少,,可以用于在有多个exit 的程序中,,好让用户知道exit是在程序的那个位置退出的

执行 shift 语句后 位置变量($1 --$9) 中的命令会依次向左传递

执行一次shift语句操作后会丢弃最左边的一个值

1=1 2=2 3=3 4=4

1=2 2=3 3=4 4的位置就丢弃不了,,1里边的数据与丢失了

shell默认的执行方式是串发执行-------就是当一条命令执行完以后,才会去执行另一条命令

并发执行就是------就是命令一起执行

如果想实现并发执行 就在脚本串发执行的部分加上 & 符号 原本的&符号是用来实现转到后天去执行的进程,但是这里的&符号可以实现并发执行

但是并发执行的坏处就是,执行的命令不规律, 只要把循环执行完了就行,

如果先执行完了循环的命令在去执行其他的命令,就要在循环的最后加上 wait(等待) 但是循环里的顺序还是不对的

当耗时比较长,,程序是要循环执行的,前后之间没有依赖关系的,就要用到并发执行

函数的定义和调用

定义函数的格式

function 函数名 {

命令序列

}

或者是

函数名(){

命令序列

}

在函数调用时,函数中的代码才能被执行

定义函数要在最开始就定义函数

猜你喜欢

转载自blog.csdn.net/ldgjzjmzknbn/article/details/108541894