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

1、单中括号 []

①bash 的内部命令,[和test是等同的。如果我们不用绝对路径指明,通常我们用的都是bash自带的命令。if/test结构中的左中括号是调用test的命令标识,右中括号是关闭条件判断的。这个命令把它的参数作为比较表达式或者作为文件测试,并且根据比较的结果来返回一个退出状态码。if/test结构中并不是必须右中括号,但是新版的Bash中要求必须这样。

②Test和[]中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq,-gt这种形式。无论是字符串比较还是整数比较都不支持大于号小于号。如果实在想用,对于字符串比较可以使用转义形式,如果比较"ab"和"bc":[ ab \< bc ],结果为真,也就是返回状态为0。[ ]中的逻辑与和逻辑或使用-a 和-o 表示。

③字符范围。用作正则表达式的一部分,描述一个匹配的字符范围。作为test用途的中括号内不能使用正则。

④在一个array 结构的上下文中,中括号用来引用数组中每个元素的编号。

2、双中括号[[ ]]

①[[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。在[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。

②支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。[[ ]] 中匹配字符串或通配符,不需要引号。

③使用[[ ... ]]条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。比如可以直接使用if [[ $a != 1 && $a != 2 ]], 如果不适用双括号, 则为if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]。

④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。

时间: 2024-08-16 21:17:50

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条件判断

条件判断式 只要讲到程序的话,那么条件判断式,亦即是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 文件 判断该文件是否存在,

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