• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Shell里面括号的用法

php 搞代码 4年前 (2022-01-04) 25次浏览 已收录 0个评论

中括号

中括号分为单中括号[],和双中括号[[]],中括号一般用于表达式判断中,小括号也可以用于表达式,这个后面提到。

单中括号[]

A=5B=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是否存在,满足<span style="color:transparent">来源gaodai#ma#com搞*代#码网</span>一个条件则返回真

我们通过上面可以看出使用单中括号的一些规则:

变量与中括号之间要有空格

变量与操作符之间也要有空格

变量可以直接用$进行引用,也可以使用${}以及"${}"进行引用,虽然可以直接使用${},但是建议还是用"${}",或者直接用$,来引用变量

字符串要用双引号引起来

字符串比较一般使用==来做字符串是否相同测试,使用<或者>进行大小比较,在单中括号中对字符进行大于和小于的比较要用转移\>和\<。比较原理就是对比ASCII进行对比。

另外在单中括号中还可以使用-a和-o这样的逻辑运算符

双中括号[[]]:

A=5B=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);dodone 写法2:for I in seq 1 10;dodone 写法3:for (( i=1 ; i<=10 ; i++ )); dodone

While语句的形式

1到10循环

I=1while [ $I -le 10 ];do  let I++done

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Shell里面括号的用法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址