1、条件测试

1)test

2)[


shell脚本---语法篇_第1张图片

shell脚本---语法篇_第2张图片


测试命令:

[ -d DIR ] : 如果DIR存在并且是一个目录则为真

[ -f FILE ] : 如果FILE存在且是一个普通文件则为真

[ -z STRING ] : 如果STRING的长度为零则为真

[ -n STRING ] : 如果STRING的长度非零则为真

[ STRING1 = STRING2 ] : 如果两个字符串相同则为真

[ STRING1 != STRING2 ] : 如果字符串不相同则为真

shell脚本---语法篇_第3张图片

shell脚本---语法篇_第4张图片


3)if语句

如果两条命令写在同一行则需要用;号隔开,一行只写一条命令就不需要写;号了,另外,then后面有换行,

但这条命令没写完,Shell会自动续行,把下一行接在then后面当作一条命令处理。和[命令 一样,要注意命令和各参数之间必须用空格隔开。if命令的参数组成一条子命令,如果该子命令的Exit Status为0(表示真),则执行then后面的子命令,如果Exit Status非0(表示假),则执 行elif、else或者fi后面的子命令。if后面的子命令通常是测试命令,但也可以是其它命令。Shell脚本没有{}括号,所以用fi表示if语句块的结束。


shell脚本---语法篇_第5张图片

shell脚本---语法篇_第6张图片


条件恒成立的时候,用:号


shell脚本---语法篇_第7张图片

shell脚本---语法篇_第8张图片


4)case语句


shell脚本---语法篇_第9张图片

shell脚本---语法篇_第10张图片


5)for循环语句

shell脚本---语法篇_第11张图片


2、函数

获取函数的返回值有两种方法:


shell脚本---语法篇_第12张图片

wKiom1epia_Cq4lNAAAQsFdHQhA109.png-wh_50


3、数组

shell脚本只支持一维数组,只支持序列式数组,不支持关联式数组

shell脚本---语法篇_第13张图片

shell脚本---语法篇_第14张图片