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

时间: 2024-10-08 09:44:50

linux[基础]16-shell判断用户参数[01]的相关文章

4.Shell 判断用户的参数

1.Shell 判断用户的参数 系统在执行mkdir命令时会判断用户输入的信息,即判断用户指定的文件夹名称是否已经存在,如果存在则提示报错:反之则自动创建. Shell脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回其他随机数值. 条件测试语法:的执行格式如图4-16所示.切记,条件表达式两边均应有一个空格 按照测试对象来划分,条件测试语句可以分为4种: 文件测试语句: 逻辑测试语句: 整数值比较语句: 字符串比较语句. 文件测试即使用指定条件来判断文件是否存在或权

linux 基础与shell编程[笔记]

linux 基础与shell编程 linux 系统知识 linux是一个OS ,也是一个完全免费 开源 自由软件 linux 1991   荷兰大学生课程设计   unix GPL协议 GPL:General Public License 是一份GNU(完全自由软件操作系统)是一个广泛使用的自由软件许可证条款 常见的linux发行版本: Debian:Debian为一款提供您安装在计算机上使用的操作系统 (OS).操作系统就是能让您的计算机工作 的一系列基本程序和实用工具.由于 Debian 采

Linux基础知识——shell命令类型及命令使用帮助

加入马帮有一段时间了,看到群里面大总管要检查博客,才意识到,原来我还没有写过作业.俗话说的好,时间是把杀猪刀!!!咳咳,其实想说,马哥视频忒长,内容贼多,对于文笔不好我来说,写作业压力山大啊,有木有.嗯.嗯,长话短说,进入正题. 两个星期过去,课程进度有点掉队,这篇博文主要记录基础命令课程知识,用于梳理知识点并加深印象,为今后行走linux之路打下坚实基础的好开端,完成该博文并回顾相关知识点后,期望加快学习步伐,稳扎稳打,跟上进度,good good study,day day up! 1.  

linux基础之shell编程(2)-条件判断,算数运算,测试

bash中如果实现条件判断? 条件测试类型 整数测试 字符测试 文件测试 条件测试的表达式 有三种 [ expression ] --方括号与表达式之间一定要有一个空格 [[ expression ]] test expression 整数测试 -eq: 测试两个整数是否相等 例:$A -eq $B -ne: 测试两个整数是否不等 不等为真,相等为假 -gt: 测试一个数是否大于另一个数:大于,为真:否则,为假: -lt: 测试一个数是否小于另一个数:小于,为真:否则,为假: -ge: 大于或等

一天一个linux基础命令之添加用户useradd

添加用户 useradd 1.命令格式 useradd [options] USERNAME 2.命令功能 useradd命令用于Linux中创建的新的系统用户.useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号. 使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中 在Red Hat Linux中,adduser命令则是useradd命令的符号连接,两者实际上是同一个指令. useradd可以添加的选项,指

linux基础之shell编程(3)-给脚本设置参数

bash的变量类型 本地变量(局部变量) 环境变量 位置变量:$1,$2,$3, ... 特殊变量:$?,$#,$*,[email protected] 那让脚本拥有获取外界参数的能力就要用的位置变量,$1代表第一个参数,$2代表第二个参数,依次类推 例: vartest.sh #!/bin/bash # ONEVAR=$1 TWOVAR=$2 THREEVAR=$3 echo "第一个参数是:${ONEVAR}" echo "第二个参数是:${TWOVAR}" e

DAY-10 Linux基础及shell脚本

一.nfs服务 1.NFS 是Network File System的缩写,即网络文件系统.用于Linux系统之间的共享存储,NFS在文件传送或信息传送过程中依赖于RPC协议,RPC的思想:一个客户端一个服务端,执行命令本来是在客户端,远程调用就是把命令发送到服务端,服务端执行后,将结果发回给客户 2.安装软件包:yum install rpcbind nfs-utils –y 3.修改配置文件:先做文件系统(新增一块硬盘),挂载一个目录,通过nfs共享这个目录里的内容 vim /etc/exp

linux[基础]-12-重要的环境变量[01]

重要的环境变量 在linux系统中有许多的环境变量,我们可以用env 来查看他 变量是由固定的"变量名"和用户设定的"变量值"两部分组成 变量名称 作用 HOME 用户的主目录"家" SHELL 当前的SHELL是那个程序 HISTSIZE 历史命令记录条数 MAIL 邮件信箱文件 LANG 语系数据 RANDOM 随机数字 PS1 Bash提示符 HISTFILESIZE History命令存储数量 PATH 在当前目录中查找执行文件 EDIT

linux基础:shell中的正则表达式用法大全

在Linux系统中,正则表达式(RegularExpression)是通过一些特殊字符的排列,用以查找.替换.删除等操作的强大工具,对于每一个Linux用户,都是非常重要的.在现有的系统中,正则表达式也分为基础正则表达式(grep),扩展正则表达式(egrep).在正式了解正则表达式之前,先了解一些相关的字符概念,它们在正则表达式中都有特殊的含义与用法. 对于基础正则表达式grep而言,每个特殊字符分别有不同的匹配: 1.字符匹配: .     :匹配任意单个字符       [ ]    :匹