shell脚本中的五种括号

shell编程中括号大致有五种:(),[],(()),[[]],{}

()

  1. 放置命令,格式$(cmd),如同’cmd’,解释器遇到这种格式,会先执行命令,得到结果再输出
  2. 初始化数组array=(1 2 3 4)

(())

  1. 算术运算$((33+44));
  2. 重定义
var=100
((var=101))
echo $var
  1. 算术比较
    ((var==404))&&echo “not found” #如果var是404,输出not found

[]

  1. 条件判断,可以test替代;
var=404
if [$var -eq 404] ##和下面意思一样
#if test $var -eq 404
then
    echo "not found"
else
    echo "hi"
fi
  1. 正则表达式的一部分
  2. 数组

[[]]

条件判断,那么和[]test有什么区别呢?

  1. &&、||、<和>只能再[[]]中使用
  2. [[]]支持算术扩展
  3. [[]]支持字符串模式匹配
var="nice"
if [[$var == nic?]]
then
    echo "nice" #输出nice
else
    echo "hi"
fi

if [[1+2 -eq 3]]
then
    echo "yes" #输出yes
else
    echo "no"
fi

所以判断条件,尽量用[[]],而不是[]

{}

  1. 代码块,和()是有区别的
  2. {}中不会开新进程,()会开,所以脚本里的变量在()中是不能用的,而在{}中是可以用的
  3. 格式问题,{ cmd;cmd;},{}左边必须空格开头,并且cmd后面必须加;

其余的就是和字符串相关的操作
字符串的替换和截断

${var:-string},${var:+string},${var:=string},${var:?string}
${var%pattern},${var%%pattern},${var#pattern},${var##pattern}
${var:num},${var:num1:num2}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值