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 [ -x file  ]    如果文件存在且可执行

整数变量表达式 
if [ int1 -eq int2 ]    如果int1等于int2   
if [ int1 -ne int2 ]    如果不等于    
if [ int1 -ge int2 ]       如果>= 
if [ int1 -gt int2 ]       如果> 
if [ int1 -le int2 ]       如果<= 
if [ int1 -lt int2 ]       如果<

字符串变量表达式 
If  [ $a = $b ]                 如果string1等于string2 
                                字符串允许使用赋值号做等号 
if  [ $string1 !=  $string2 ]   如果string1不等于string2       
if  [ -n $string  ]             如果string 非空(非0),返回0(true)  
if  [ -z $string  ]             如果string 为空 
if  [ $sting ]                  如果string 非空,返回0 (和-n类似)

逻辑非 !                   条件表达式的相反 
if [ ! 表达式 ] 
if [ ! -d $num ]                        如果不存在目录$num

逻辑与 –a                    条件表达式的并列 
if [ 表达式1  –a  表达式2 ]

逻辑或 -o                    条件表达式的或 
if [ 表达式1  –o 表达式2 ]

逻辑表达式

表达式与前面的=  != -d –f –x -ne -eq -lt等合用 
    逻辑符号就正常的接其他表达式,没有任何括号( ),就是并列 
if [ -z "$JHHOME" -a -d $HOME/$num ]

注意逻辑与-a与逻辑或-o很容易和其他字符串或文件的运算符号搞混了

最常见的赋值形式,赋值前对=两边的变量都进行评测 
左边测变量是否为空,右边测目录(值)是否存在(值是否有效)

if test $num -eq 0      等价于   if [ $num –eq 0 ]

Shell 条件判断,布布扣,bubuko.com

时间: 2024-10-12 07:28:46

Shell 条件判断的相关文章

shell条件判断

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

[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

L7.1 linux shell 条件判断与循环语句

bash脚本条件判断语句详细使用 条件判断的使用方法及其相关示例: 本文对bash中test语句,if判断语句(单分支,多分支)case语句详细说明,如下 条件测试:test 作用:Shell中的test命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. test使用语法 test EXPRESSION 也可以使用 :[ EXPRESSION ]:[[ EXPRESSION ]] 整数测试: 隐含着做数值大小比较,所以不要给变量引用加引用: $A -gt $B:是否大于:是

shell条件判断总结

无论什么编程语言都离不开条件判断.SHELL也不例外.shell有一下几种条件判断类别. 0x01.按照文件类型进行判断 选项 作用 -b 文件 判断该文件是否存在,并且是否为块设备文件(是块设备文件为真) -c 文件 判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真) -d 文件 判断该文件是否存在,并且是否为目录文件(是目录为真) -e 文件 判断该文件是否存在(存在为真) -f 文件 判断该文件是否存在,并且是否为普通文件(是普通文件为真) - L 文件 判断该文件是否存在,

shell条件判断中单个中括号和霜中括号有什么需要

1.单中括号 [] ①bash 的内部命令,[和test是等同的.如果我们不用绝对路径指明,通常我们用的都是bash自带的命令.if/test结构中的左中括号是调用test的命令标识,右中括号是关闭条件判断的.这个命令把它的参数作为比较表达式或者作为文件测试,并且根据比较的结果来返回一个退出状态码.if/test结构中并不是必须右中括号,但是新版的Bash中要求必须这样. ②Test和[]中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq,-gt

LINUX SHELL条件判断

算术运算的条件判断 [] [[]]: -eq -ne -lt -le -gt -ge (( )):><>=<== [[email protected] ~]# if (( 2 == 3));then echo '123'; fi [[email protected] ~]# if (( 2 >= 3));then echo '123'; fi [[email protected] ~]# if (( 2 <= 3));then echo '123'; fi 123[[e

shell条件判断 if else

基本语法 shell的if语法和C语言等高级语言非常相似,唯一需要注意的地方就是shell的if语句对空格方面的要求比较严格(其实shell对所有语法的空格使用都比较严格),如果在需要空格的地方没有打上空格,都会报错. 如if [ $1x == "ip"x ];then echo "abc";fi中少一个空格都会报错. ; then 等同于 换行后 then 另外shell的if语句必须以fi作为结尾,不然同样会报错.有else和elif时也一样,需要注意空格的问题

linux中shell条件判断if中的-a到-z

[ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真. [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真. [ -h FILE ] 如果 FILE