如何在Shell脚本中使用条件测试和如果条件语句

  介绍

今天就跟大家聊聊有关如何在Shell脚本中使用条件测试和如果条件语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>一、条件测试操作

要使壳脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作.Shell环境根据命令执行后的返回状态值(¥?)来判断是否执行成功,当返回值为0时表示成功,否则(非0值)表示失败或异常。使用专门的测试工具,测试命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立(返回值为0表示条件成立)。

使用测试测试命令时,包括以下两种形式:

test 条件表达式   [,条件表达式,]

这两种方式的作用完全相同,但通常后一种形式更为常用,需要注意的是,方括号“[”或“]”与条件表达式之间需要至少一个空格进行分隔。

<强> 1,文件测试:

- d:测试是否为目录(目录);

- e:测试文件或目录是否存在(存在);

- f:测试是否为文件(文件);

- r:测试当前用户是否有权限读取(读);

- w:测试当前用户是否有权限写入(写);

- x:测试是否设置有可执行(Excute)权限;

执行条件测试操作以后,通过预定义变量$ ?可以获得测试命令的返回状态值,从而判断该条件是否成立,例如,执行以下操作可以测试目录/媒体/是否存在,如果返回值$ ?为0,表示存在此目录,否则表示不存在或者虽然存在但不是目录。

[root@centos01  ~] #, test  -d /boot ,, & lt; !——测试目录是否存在,在   (root@centos01  ~) #, echo  $ ?,,,,,, & lt; !——查看前一命令的返回值——比;   0,,,,,,,,,,,& lt; !——返回0表示条件成立——在

若测试的条件不成立,则测试操作的返回值将不为0(通常为1)。

 [root@centos01  ~] #, test  -d /ertec ,,, & lt; !——测试目录是否存在,在
  (root@centos01  ~) #, echo  $ ?,,,,, & lt; !——查看前一命令的返回值——比;
  1,,,,,& lt; !——返回1表示条件不成立——在

<强> 2,整数值比较:

情商:第一个数等于(平等)第二个数;

- ne:第一个数不等于(不等于)第二个数;

gt:第一个数大于(大于)第二个数;

lt:第一个数小于(小于)第二个数;

le:第一个数小于或等于(小于或等于)第二个数;

通用电气:第一个数大于或等于(大于或等于)第二个数;
整数值比较在Shell脚本编写中的应用较多。例如,用来判断已登录用户数量,开启进程数,磁盘使用率是否超标,以及软件版本号是否符号要求等。实际使用时,往往会通过变量引用,命令替换等方式来获取一个数值。

<强> 3,字符串比较:

=:第一个字符串与第二个字符串相同。

!=:第一个字符串与第二个字符串不相同,其中“!”表示取反。

- z:检查字符串是否为空,对于未定义或赋予空值的变量将是为空串。

[root@centos01  ~] #,一个=1   (root@centos01  ~) #, b=2,   [root@centos01  ~] #, [, a 美元;=,b 美元),,,,echo “yes", & lt; !——当1等于2显示好,不等于显示为空——比;   ,,,,,& lt; !——显示为空——比;   root@centos01  ~ #,一个=1,   (root@centos01  ~) #, b=2,   [root@centos01  ~] #, [, a 美元;!=,b 美元),,,,echo “yes", & lt; !——当1不等于2显示是的,否则显示为空——比;   yes ,,, & lt; ! - 1不等于2,显示是的——在

<强> 4,逻辑测试:

<李>

,,:逻辑与,表示”而且”,只有当前后两个条件都成立时,整个测试命令的返回值才为0(结果成立),使用测试命令测试时,“,和”可以使用“——”代替。

<李>

| |:逻辑或,表示“或”者,只要前后两个条件有一个成立,整个测试命令返回的值即为0(结果成立)。使用测试命令测试时可以使用“o”代替。

<李>

!:逻辑否,表示“不”,只有当条件不成立时,整个测试命令返回的值才为0(结果成立)。

示例如下:

[root@centos01  ~] #,一个=100   [root@centos01  ~] #, [, a 美元;=,100,),,,,(50,a 美元;!=,,),,,,echo “yes", & lt; !——使用逻辑与运算,两个条件为真显示是的——比;   yes ,, & lt; !——两个条件为真,显示是的——比;   (root@centos01  ~) #, c=100,   [root@centos01  ~] #, [, a 美元;=,100,),| |,[,a 美元;-ge  50,),,,, echo “yes",, & lt; !——使用逻辑与运算,两个条件一个为真显示为是的——比;   yes ,, & lt; !——两个条件一个为真,显示是的——在

如何在Shell脚本中使用条件测试和如果条件语句