中括号
中括号分为单中括号[],和双中括号[[]],中括号一般用于表达式判断中,小括号也可以用于表达式,这个后面提到。
单中括号[]
A=5 B=3 [ $A -eq $B ] 判断A是否等于B [ ${A} -eq ${B} ] 作用同上 [ "${A}" -eq "${B}" ] 作用同上
A=ABC [ $A == "ABC" ] 或写成 [ ${A} == "ABC" ] 或写成 [ "${A}" == "ABC" ] [ $A \> "ABC" ]
[ -d ./aaa.sh -a -e ./bbb ] 测试aaa.sh是否为目录并且bbb是否存在,如果都符合则返回真 [ -d ./aaa.sh -o -e ./bbb ] 测试aaa.sh是否为目录并且bbb是否存在,满足一个条件则返回真
我们通过上面可以看出使用单中括号的一些规则:
变量与中括号之间要有空格
变量与操作符之间也要有空格
变量可以直接用$进行引用,也可以使用${}以及"${}"进行引用,虽然可以直接使用${},但是建议还是用"${}",或者直接用$,来引用变量
字符串要用双引号引起来
字符串比较一般使用==来做字符串是否相同测试,使用43fbcb8c9edfc3c464b98ced19a92d5f进行大小比较,在单中括号中对字符进行大于和小于的比较要用转移\>和\<。比较原理就是对比ASCII进行对比。
另外在单中括号中还可以使用-a和-o这样的逻辑运算符
双中括号[[]]:
A=5 B=3 [[ $A -eq $B ]] 判断A是否等于B [[ ${A} -eq ${B} ]] 作用同上 [[ "${A}" -eq "${B}" ]] 作用同上
A=ABC [[ $A == "ABC" ]] 或写成 [[ ${A} == "ABC" ]] 或写成 [[ "${A}" == "ABC" ]] 或写成 [[ $A == ABC ]] [[ $A > "ABC" ]]
[[ -d ./aaa.sh && -e ./bbb ]] 测试aaa.sh是否为目录并且bbb是否存在,如果都符合则返回真 [[ -d ./aaa.sh || -e ./bbb ]] 测试aaa.sh是否为目录并且bbb是否存在,满足一个条件则返回真
A=ABC [[ $A =~ "A" ]] 做模式匹配,这个表达式为真 或写成 [[ ${A} =~ "A" ]] 或写成 [[ "$[A]" =~ "A" ]] [[ $A = A* ]] 表达式为真 [[ $A = B* ]] 表达式为假
双中括号的使用和单中括号的使用规则类似
双中括号中间字符串的大于小于比较不需要转义,且字符串可以不用双引号引用
双中括号里面可以使用&&、||做逻辑运算符
双中括号里面还可以做模糊匹配,使用=~表达式2可以是正则表达式
[ 表达式1 -a 表达式2 ] 等效于 [[ 表达式1 && 表达式2 ]] 等效于 [ 表达式1 ] && [ 表达式2 ] 等效于 [[ 表达式1 ]] && [[ 表达式2 ]]
[ 表达式1 -o 表达式2 ] 等效于 [[ 表达式1 || 表达式2 ]] 等效于 [ 表达式1 ] || [ 表达式2 ] 等效于 [[ 表达式1 ]] || [[ 表达式2 ]]
小括号
单小括号
单小括号单独使用是表示指令组,会通过子shell的方式依次执行括号中的命令
(ls ./;echo "hello";mkdir -p /tmp/ccc)
最常见的用法这是命令替换中使用,命令替换也可以使用反引号``
echo "当前目录是:$(pwd)" echo "当前目录是:`pwd`"
双小括号
常用在算术运算上以及在for循环中也会用到
A=$((5+3)) B=$(($A+4))
For语句的形式
1到10循环执行
写法1: for I in (1..10);do done 写法2: for I in seq 1 10;do done 写法3: for (( i=1 ; i<=10 ; i++ )); do done
While语句的形式
1到10循环
I=1 while [ $I -le 10 ];do let I++ done

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。