Linux Shell编程与条件语句

Linux Shell编程与条件语句

一、Test

测试特定的表达式是否成立,当条件成立,测试语句的返回值为0,否则为其他数值

格式:test 条件表达式 或 [ 条件表达式 ] (条件表达式的两边都需要空格,且此方法更为常用)

文件测试

常用选项

常见的测试操作符 含义 -d 测试是否为目录(directory) -e 测试目录或文件是否存在(Exist) -f 测试是否为文件(File) -r 测试当前用户是否有权限读取(Read) -w 测试当前用户是否有权限写入(Write) -x 测试当前用户是否有权限执行(eXcute) -L 测试是否为软连接文件 -nt 判断文件A是否比文件B新 -ot 判断文件A是否比文件B旧 -ef 判断两个文件是否为同一文件

例1

例2

例3:可以使用 && 和 echo 一起使用

例4:可以使用 || 和 echo 一起使用

例5:比较两个文件

整数值比较

格式:[ 整数1 操作符 整数2 ]

常见测试操作符

操作符 含义 -eq 等于(Equal) -ne 不等于(Not Equal) -lt 小于(Leser Than) -gt 大于(Greater Than) -le 小于或等于(Lesser or Equal) -ge 大于或等于(Greater or Equal)

例1:查询当前目录下的文件数是否大于10,如果大于,则进行提示

例2:查看系统内存是否低于1024M,如果低于则提示

字符串比较

格式:[ 字符串1 = 字符串2 ] //判断是否相等

[ 字符串1 != 字符串2 ] //判断是否不等

[ -z 字符串 ] //判断字符串内容是否为空

操作符

操作符 含义 = 字符串内容相同 != 字符串内容不同,!号表示相反的意思 -z 字符串内容为空

例1:判断当前系统语言环境是否为“us.en”,如果不是则提示

逻辑测试

格式:[ 表达式1 ] 操作符 [ 表达式2 ]

命令1 操作符 命令2

操作符

-a 或 && 逻辑与,而且的意思 -o 或 ▕▕ 逻辑或,或者的意思 ! 逻辑否

二、if

单分支结构

如果只有一个判断式要进行,那么我们可以使用单分支的if语句 ,只有在条件成立时才会执行,否则不执行任何操作

格式:

if [ 条件判断语句 ]

then

echo “当前条件成立时,执行一条或多条命令”

fi

例:使用单分支语句判断 c 文件是否存在

双分子结构

在同一个数据的判断中,如果该数据需要进行两种不同的判断,我们就需要双分支if语句了

格式:

if [ 条件判断式 ]

then

echo “当条件判断成立时,可以执行一条或多条命令”

else

echo “当条件判断不成立时,可以执行一条或多条命令”

fi

例:判断用户输入的是否为yes

多分支结构

如果数据需要进行多种不同的判断,则可以使用多分支结构 嵌套使用

格式:

if [ 条件判断式 ]

then

echo “当条件判断成立时,可以执行一条或多条命令”

elif [ 条件判断式二 ]

then

echo “当条件判断式成立时,可以执行一条或多条命令”

else

当上面的条件判断都不成立时,可以执行一条或多条命令

fi

例:多分支判断成绩

三、case

格式:

case 变量名称 in

模式1)

命令序列

;;

模式2)

程序段

;;

*)

不包含第一个变量内容与第二个变量内容的其它程序执行段

默认程序段

;;

esac

case行首必须以单词 “in”,每一模式必须以单个右括号")"结束

双分号 ";;" 表示命令序列的结束

模式字符串中,可以用方括号表示一个连续的范围,如 "[0-9]";还可以使用竖杠 | 表示或,比如a|b

最后的 ) 表示默认模式,其中的相当于通配符

例:不管输入大小写字母,都能输出yes或者no

经验分享 程序员 微信小程序 职场和发展