linux[基础]16-shell判断用户参数[01]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux[基础]16-shell判断用户参数[01]相关的知识,希望对你有一定的参考价值。

Shell判断用户参数

条件测试语句能够测试特点的表达式是否成立

  当条件成立时返回值为0

  否则返回其他数值

 

测试语句格式:

 

  [ 条件表达式 ] 两侧均应有一个空格

 

  测试语句有:

 

    文件测试

    逻辑测试

    整数值比较

    字符串比较

 

文件测试:

 

  [ 操作符 文件或目录名 ]

 

参数

作用

-d

测试是否为目录

-e

测试文件或目录是否存在

-f

判断是否为文件

-r

测试当前用户是否有权读

-w

测试当前用户是否可写

-x

测试当前用户是否可执行

 

  实例:

 

    [[email protected] ~]# [ -d /etc ] #判断是否为一个目录

    [[email protected] ~]# echo $?

    0

    [[email protected] ~]# [ -f /etc/inittab ] #判断是否为一个文件

    [[email protected] ~]# echo $?

    0

    [[email protected] ~]# [ -r /etc/inittab ] #判断当前用户是否可读

    [[email protected] ~]# echo $?

    0

    [[email protected] ~]# [ -w /etc/inittab ] #判断当前用户是否可写

    [[email protected] ~]# echo $?

    0

    [[email protected] ~]# [ -x /etc/inittab ] #判断当前用户是否可执行

    [[email protected] ~]# echo $?

    1

 

  实例2

 

    [[email protected] ~]# [ -e /dev/cdrom ] && echo "Exist"

    Exist

 

 

逻辑测试:

 

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

 

操作符

作用

&&

逻辑的与,“而且”的意思

||

逻辑的或,“或者”的以上

!

逻辑的否

 

 

 

  实例1

 

    Root用户下:

      [[email protected] ~]# [ $USER != root ] && echo "user"

      [[email protected] ~]#

    普通用户下:

      [[email protected] ~]$ [ $USER != root ] && echo "user"

      user

      [[email protected] ~]$

 

  实例2

 

    Root用户下:

      [[email protected] ~]# [ $USER != root ] && echo "User" || echo "root"

      root

      [[email protected] ~]#

 

整数值比较:

 

  [ 整数1 操作符 整数2 ]

 

 

 

操作符

作用

-eq

判断是否等于

-gt

判断是否大于

-lt

判断是否小于

-le

判断是否等于小于

-ge

判断是否等于大于

 

 

  实例1

 

    [[email protected] ~]# [ 10 -gt 10 ] #判断是否10大于10

    [[email protected] ~]# echo $?

    1

 

  实例2

 

    [[email protected] ~]# [ 10 -eq 10 ] #判断10是否等于10

    [[email protected] ~]# echo $?

    0

 

  实例3

 

    [[email protected] ~]# FreeMem=`free -m | grep cache: | awk ‘{print $3}‘`

    [[email protected] ~]# echo $FreeMem

    205

    [[email protected] ~]# [ $FreeMem -lt 1024 ] && echo "内存不足"

    内存不足

    [[email protected] ~]#

 

字符串比较:

 

   [ 字符串1 操作符 字符串2 ]

 

操作符

作用

=

比较字符串内容是否相同

!=

比较字符串内容是否不同

-z

判断字符串内容是否为空

 

实例1

 

  [[email protected] ~]# [ -z $String ] #判断变量是否为空

  [[email protected] ~]# echo $?

  0

 

实例2

 

  [[email protected] ~]# [ $LANG != "en.US" ] && echo "Not en.US"

  #判断系统语言是否为en.us

  Not en.US

 

以上是关于linux[基础]16-shell判断用户参数[01]的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础 7-6 Bash脚本编程练习3

笔记16(shell编程)

linux轻松学shell脚本如何接收用户参数

Linux基础7-4 Bash脚本编程练习2

Linux基础7-4 Bash脚本编程练习2

Linux操作系统基础操作之变量的相关设置