shell 括号用法介绍

  • 中括号[

和 test 命令等价,用户布尔判断,比如:

1 a=‘abc‘
2 if [ $a == ‘abc‘ ]
3 then
4    echo "yes"
5 else
6    echo "no"
7 fi

等价于

1 if test $a == ‘abc‘
2 then
3     echo "yes"
4 else
5     echo "no"
6 fi

使用[]的时候要注意:

1. [] 左右括号要各留一个空格,否则会报错

2. 如果 == 左边的值为空,会导致命令出错,为了防止这种情况,一般在 == 左右各加一个额外的字符串,比如:

if [ ${a}x == abcx ]

另外,还要注意单括号和双括号的区别:

  • 小括号(

小括号多用于算数运算符,用于赋值操作的时候,功能跟let命令相似,原文参考这里

let a=5
((a=10))
echo $a, $b
((a=$a+7))         # Add 7 to a
((a = a + 7))      # Add 7 to a.  Identical to the previous command.
((a += 7))         # Add 7 to a.  Identical to the previous command.

((a = RANDOM % 10 + 1))     # Choose a random number from 1 to 10.
                            # % is modulus, as in C.
 

双括号左边加  $ 符号,用于替换结果,比如:

echo $((a>10))

单个()用于在新的 subshell 中执行相应的命令,比如:

1 (cd ../../)

需要注意的是,这段命令执行完成之后,并不会改变当前目录

参考资料:

http://mywiki.wooledge.org/ArithmeticExpression

http://stackoverflow.com/questions/2188199/how-to-use-double-or-single-bracket-parentheses-curly-braces

时间: 2024-10-04 16:39:45

shell 括号用法介绍的相关文章

sudo命令用法介绍

sudo命令用法介绍 sudo命令用来以其他身份来执行命令,预设的身份为root.在/etc/sudoers中设置了可执行sudo指 令的用户.若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员.用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码. 语法:sudo(选项)(参数) 选项: -b:在后台执行指令: -h:显示帮助: -H:将HOME环境变量设为新身份的HOME环境变量: -k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密

MyEclipse相关用法介绍

MyEclipse相关用法介绍 ================================================================================ 编辑: Ctrl+Shift+L      显示所有快捷键 Ctrl+K        参照选中的词(Word)快速定位到下一个 Ctrl+Shift+K      参照选中的词(Word)快速定位到上一个 Ctrl+O         快速显示OutLine Ctrl+T        快速显示当前类的

Linux shell 正则表达式用法

1.“ \  ” 用法 用于关闭其后续字符的特殊含义,恢复字符的本身含义,如:\\ 表示字符 \ 2. “ . " 用法 匹配任意单个字符 3. " * " 用法 匹配任意字符,可以是单个,也可以是多个,和 ”.“ 字符的去吧是是否可以匹配多个任意字符 4. "^" 的用法 在行的起始处开始匹配紧接着的字符,如 ^6,匹配行的首字符为6的行. 5." $ " 的用法 和 “^” 用法相似,表示在行的结尾处开始匹配字符,如 6$,匹配行的

mysql进阶 六 模糊查询的四种用法介绍

mysql中模糊查询的四种用法介绍 这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下. 下面介绍mysql中模糊查询的四种用法: 1%: 表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为“张三”,“张猫三”.“三脚猫”,“唐三藏”等等有“三”的记录全找出来. 另外,如果需要找出u_name中既有“三”又有

关于Java中this和super的用法介绍和区别

1.this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的.要注意的是this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this.his也可作为构造函数来使用.在后面可以看到 而什么是super,可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类.super的作用同样是可

(转)常用算法(Algorithm)的用法介绍

2算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. 2<algorithm>是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较.交换.查找.遍历操作.复制.修改.反转.排序.合并等等. 2<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作. 2<functional>中则定义了一些模板类,用以声明函数对象. 2STL提供

grep过滤用法介绍(一)

grep过滤用法介绍(一) grep主要作用是过滤出指定的行,指定的行满足什么条件,满足的条件我们就可以用一个正则表达式来表示.为了方便下面的实验进行,我们先进行cp /etc/passwd  1.txt 例如:#grep 'root'1.txt,截图如下: 匹配过滤出,有root的行! grep有一个选项很好用: 1.grep --color 'root' 1.txt 标注红色.为了方便使用,我们做一个别名操作,alias cgrep='grep --color'[删除用unalias+别名]

grep过滤用法介绍(二)

grep过滤用法介绍(二) 背景:(1)alias cgrep='grep --color' (2)cp /etc/passwd  1.txt 1. cgrep -n 'root' 1.txt 包含root所在,行数. 2. cgrep -v 'nologin' 1.txt 不包含nologin. 3. cgrep '[0-9]' 1.txt 包含所有0-9中间数字包含任意一个的行. 4. cgrep '[a-zA-Z]' 1.txt 过滤所有字母. 5.cgrep '^[a-z]' 1.txt

Oracle CASE WHEN 用法介绍

Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT gra