shell脚本中的各种括号

shell编程中的括号大致有五种,分别是 (), [], (()), [[]]{} 接下来简单的介绍以下它们的用法:

  1. ()
  • 放置命令,格式$(cmd),如同`cmd` 。
    解释器遇到这种格式,会先执行命令,得到结果再输出。
  • 初始化数组 array=(1 2 3 4)
  1. (())
  • 算术运算 $((3*3+4*4))
  • 重定义
var=100
((var=101))
echo $var
  • 算术比较
((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. [[]]
    条件判断,那和[] test 有什么区别呢?
  • &&、||、< 和 > 只能在[[]]中正常使用,如果放到[]中会报错。
  • [[]] 支持算术扩展
  • [[]] 支持字符串模式匹配,[]不支持。
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. {}
  • 代码块,和()是由区别的
    • {}中不会开新进程,()会开,所有脚本里的变量在()是用不了的,但{}可以
    • 格式问题,{ cmd;cmd;} (cmd;cmd) ,{}左边必须空格开头,并且cmd后面必须加;

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

${var:-string},${var:+string},${var:=string},${var:?string}  
${var%pattern},${var%%pattern},${var#pattern},${var##pattern}  
${var:num},${var:num1:num2}  
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值