shell 条件测试总结

条件测试:推荐使用格式2

格式1:   test<测试表达式>              man test查看相关帮助

格式2:   [<测试表达式>]

格式3:   [[<测试表达式>]]

说明:在[[]]中可以使用通配符进行模式匹配 && ||  >  < 等操作符可以应用于[[]]中,但不能应用于[]中

[[email protected] ~]# test -f file && echo 1 || echo 0

0

[[email protected] ~]# touch file

[[email protected] ~]# test -f file && echo 1 || echo 0

1

[[email protected] ~]# test ! -f file && echo 1 || echo 0

0

[[email protected] ~]# arg="martin"

[[email protected] ~]# test -z "$arg" && echo 1  || echo 0

0

[[email protected] tools]# [ -f file ]&& echo 1 || echo 0

0

[[email protected] tools]# [[ -f file && -d dir ]]&& echo 1 || echo 0

0

文件测试操作符

-f  file

-d  dirrctory

-s  size   文件存在且不为空则为真

-e  exist  可以是文件也可以是目录

-r  read

-w  write

-x  excute..

-L  link

f1 -nt f2    newer than 若文件f1比文件f2新则为真

f1  -ot f2   older than

[[email protected] tools]# mkdir martin

[[email protected] tools]# [ -f martin ]&& echo 1 || echo 0

0

[[email protected] tools]# [ -d martin ]&& echo 1 || echo 0

1

[[email protected] tools]# [ -e martin ]&& echo 1 || echo 0

1

常用字符串测试操作符

-z  "字符串"   若长度为0则为真, -z 可以理解为 zero

-n  "字符串"   若长度不为0则为真, -n 可以理解为 no zero

"串1"="串2"    若串1等于串2则为真,可使用== 代替=

"串1"!="串2"    若串1不于串2则为真,但不能使用 !==代替 !=

字符串或字符串变量比较都要加双引号再比较

字符串比较,比较符号两端最好有空格,多参考系统脚本

[[email protected] tools]# sed -n ‘30,31p‘ /etc/init.d/network

# Check that networking is up.

[ "${NETWORKING}" = "no" ] && exit 6

[[email protected] tools]# martin="hello"

[[email protected] tools]# [ "${martin}" = "hello" ]&& echo 1 || echo 0

1

[[email protected] tools]# [ "${martin}" = "hello123" ]&& echo 1 || echo 0

0

[[email protected] tools]# [ -n "abc" ]&& echo 1 || echo 0

1

[[email protected] tools]# [ -n "" ]&& echo 1 || echo 0

0

[[email protected] tools]# [ 12 -eq 13 ]&&echo 1 || echo 0

0

[[email protected] tools]# [ 12 -lt 13 ]&&echo 1 || echo 0

1

[[email protected] tools]# [ 12 -gt 13 ]&&echo 1 || echo 0

0

[[email protected] tools]# [[ 12 > 13 ]]&&echo 1 || echo 0

0

[[email protected] tools]# [[ 12 < 13 ]]&&echo 1 || echo 0

1

逻辑操作符

在[]中使用的逻辑操作符       在[[]]中使用的逻辑操作符        说明

-a                               &&                          and

-o ||              or

!                                 !                          not   取反

[[email protected] tools]# [ -f "$f1" -a -f "$f2" ]&& echo 1 || echo 0

1

观察系统脚本 nfs

# Source networking configuration.

[ -f /etc/sysconfig/network ] &&  . /etc/sysconfig/network

[[email protected] scripts]# sed -n ‘87,90p‘ /etc/init.d/nfs

[ "$NFSD_MODULE" != "noload" -a -x /sbin/modprobe ] && {

/sbin/modprobe nfsd

[ -n "$RDMA_PORT" ] && /sbin/modprobe svcrdma

}

时间: 2024-12-20 21:29:13

shell 条件测试总结的相关文章

Shell 条件判断

传统if 从句子——以条件表达式作为 if条件 if [ 条件表达式 ] then command command command else command command fi       条件表达式 文件表达式 if [ -f  file ]    如果文件存在 if [ -d ...   ]    如果目录存在 if [ -s file  ]    如果文件存在且非空 if [ -r file  ]    如果文件存在且可读 if [ -w file  ]    如果文件存在且可写 if

shell条件测试,运算符,选择结构,for循环结构

一.shell条件测试      man bash  //查看帮助 条件测试的命令 test 选项 文件名或目录名 或 [ 选项 文件名或目录名 ] 例: [ -e /etc/passd ] 文件状态 -f              //判断是不是文件,是文件为真 -d //判断是不是目录,是目录为真 -e //判断是不是存在,存在为真 -r //判断是否可以阅读,可以阅读为真 -w //判断是否可写,可写为真 -x //判断是否可执行,可执行为真 -l //判断是否为链接,是链接为真 数值比较

shell条件测试test

shell条件测试可以通过以下两种方式: test   参数    测试内容 [ 参数  测试内容 ] 一.测试文件类型: test  -e   文件名          (测试文件是否存在) [ -e  文件名 ]                测试文件是否存在,注意中括号两边的空格 test -f   文件名             判断是否为普通文件 test -d   文件名            判断是否为目录 test -b   文件名            判断是否为块设备文件 t

shell条件测试语句实例-测试apache是否开启

终于理解了shell条件测试语句”!=“和"-n"的用法区别,于是有了如下的shell脚本,做为练习. 第一种方法:测试apache是否开启?字符串测试 #!/bin/bash # www.jquerycn.cn web=`/usr/bin/pgrep httpd` if [ -n "$web" ]; //$web返回值是否为空 then echo "httpd is running" else /etc/init.d/httpd start f

Shell条件与测试

分类参考 文件状态测试 -b filename 当filename 存在并且是块文件时返回真(返回0) -c filename 当filename 存在并且是字符文件时返回真 -d pathname 当pathname 存在并且是一个目录时返回真 -e pathname 当由pathname 指定的文件或目录存在时返回真 -f filename 当filename 存在并且是正规文件时返回真 -g pathname 当由pathname 指定的文件或目录存在并且设置了SGID 位时返回真 -h

shell条件判断

条件判断式 只要讲到程序的话,那么条件判断式,亦即是if then这种判别式肯定一定要学习的,另外一种是case...esac if....then 这个是if...then 是最常见的条件判断式了,它分为单分支条件判断式,双分支条件判断式,多分支条件判断式 单分支条件判断语句: if [ 条件判断式 ] then 输出内容 fi 双分支条件判断式: if [ 条件判断式 ] then 输出内容 else 输出内容 fi 多分支条件判断式 if [ 条件判断式 ] then 输出内容 elif

shell条件-循环-分支-函数

shell流程控制  ( if  结构     循环结构    分支结构)                       控制脚本的执行过程                       流程控制彼此可以互相嵌套使用,也可以自己嵌套自己                       根据条件的条件判断结果执行-----------------------------------------------------if结构 单分支 if  条件判断;then    执行的代码    ......fi i

[Shell]条件判断与流程控制:if, case, for, while, until

-------------------------------------------------------------------------------------------------------- [条件判断] 1. 按文件类型进行判断 -b 文件    判断该文件是否存在,并且为块设备文件(是块设备文件为真) -c 文件    判断该文件是否存在,并且为字符设备文件(是字符设备文件为真) -d 文件    判断该文件是否存在,并且为目录文件(是目录为真) -e 文件    判断该文

shell中的变量及shell条件判断

Shell 基础之变量和条件判断 一.shell概述 1.shell概述: shell是一个命令行的解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统及程序,用户可以用shell来启动.挂起.停止甚至编写一些程序,shell还是一个功能强大的编程语言,shell是解释性的脚本语言,在shell中可以直接调用Linux命令. 2.shell脚本的用途 (1)自动化常用的命令 (2)执行系统管理和故障排除 (3)执行简单的应用程序 (4)处理文本或文件 3.shell的分类 (1