shell中括号总结: {}, (), (()), [], [[]]
括号总结
() 单小括号
命令组,括号中的命令将会开一个新的子shell执行
括号中变量不能被剩下脚本使用
命令之间分号隔开
命令和括号之间可以没有空格
命令替换,等同于``反引号
$(xxx)会被替换成命令执行结果
初始化数组
arr=(a b c d)
filenum=$(ls | wc -l)
echo ${filenum}
filenum=`ls | wc -l`
echo ${filenum}
arr=(a b c d)
echo ${arr[0]} // a
echo ${arr[@]} //4
(()) 双小括号
整数计算,不支持浮点
((tmp=a+b))
c=$((a+b))
算术运算比较
((c=2+1))
echo $c //3
d=$((1+2))
echo $d //3
// a==1 true
if (($a==1)); then
echo "a==1"
fi
//a==1 true
if ((a==1)); then
echo "a==1"
fi
[] 单中括号
判断命令: 一般参数为比较表达式
会根据比较的结果返回一个退出状态码
可用的比较运算符有:
字符串: ==, !=
整数: -eq, -gt, -lt, -ne, -ge, -le
逻辑: -a(||), -o(&&)
// aa == aa
if [ "aa" == "aa" ]; then
echo "aa == aa"
else
echo "aa != aa"
fi
// 1 < 2
if [ 1 -lt 2 ]; then
echo "1 < 2"
fi
//1 -lt 2 -o aa == bb
if [ 1 -lt 2 -o "aa" == "bb" ]; then
echo "1 -lt 2 -o aa == bb"
fi
[[]] 双中括号
bash程序语言中的关键字,双括号中的支付不会发生参数扩展或者命令替换
支持字符串模式匹配和正则匹配
支持逻辑判断符: &&, ||, <, >
// hello 与 hell? 可以加括号,也可以不加
if [[ hello == hell? ]]; then
echo "hello == hell?"
fi
if [[ 2 -gt 1 && "hello" == "hell?" ]]; then
echo "2 > 1 && hello == hell?"
fi
{} 花括号
使用通配符对花括号内容进行扩展
不允许有空白(除非空白被引用或者转义)
代码块:
不会开一个新的shell, 变量可以被余下脚本使用
每句命令都要有分号
括号两边有空格
`touch {1..4}.txt` // touch 1.txt 2.txt 3.txt 4.txt
`touch {ex1, ex2}.txt` // touch ex1.txt ex2.txt
shell中括号总结: {}, (), (()), [], [[]]的更多相关文章
- Shell中括号的作用
Shell中括号的作用 作者:Danbo 时间:2015-8-7 单小括号() ①.命令组.括号中的命令将会断开一个子Shell顺序执行,所以括号中的变量不能被脚本余下的部分使用.括号中多个命令之间用 ...
- shell中括号的使用
在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string ...
- shell中括号的特殊用法 linux if多条件判断
一. bash [ ] 单双括号 基本要素: Ø [ ] 两个符号左右都要有空格分隔 Ø 内部操作符与操作变量之间要有空格:如 [ “a” = “b” ] Ø 字符串比较中,&g ...
- (转)shell中括号的特殊用法 linux if多条件判断
一. bash [ ] 单双括号 基本要素: Ø [ ] 两个符号左右都要有空格分隔 Ø 内部操作符与操作变量之间要有空格:如 [ “a” = “b” ] Ø 字符串比较中,&g ...
- Shell编程中括号判断中赋值语句和判断语句
#!/bin/bash declare var="xxx" # without space and use one = #1.judge whether the assignmen ...
- shell之小括号、中括号、大括号
1.Shell中变量的原形:${var} 一串命令的执行 #等价于 $ var=test $ echo $var test #例如,用在这个位置 $ echo ${var}AA testAA 2.命 ...
- shell if条件判断中:双中括号与单中括号的区别
电脑重装了系统,登录虚拟机的shell脚本需重写,在为编写的脚本命名时发现存在同名脚本,才想起来是连接公司服务器的登录脚本,不想写俩脚本,怕记混了,那就整合一下.代码如下: #!/bin/bash#z ...
- Shell 中test 单中括号[] 双中括号[[]] 的区别
Shell test 单中括号[] 双中括号[[]] 的区别 在写Shell脚本的时候,经常在写条件判断语句时不知道该用[] 还是 [[]],首先我们来看他们的类别: $type [ [[ test ...
- shell编程中的单/双 小括号, 中括号, 大括号
linux shell中的变量类型?分字符串或者数字或者bool类型吗? 参考: http://www.cnblogs.com/nufangrensheng/p/3477281.html 不分! sh ...
随机推荐
- POJ 3071 Football:概率dp
题目链接:http://poj.org/problem?id=3071 题意: 给定n,有2^n支队伍参加足球赛. 给你所有的p[i][j],表示队伍i打败队伍j的概率. 淘汰赛制.第一轮(1,2)两 ...
- Eclipse_插件_02_jd-eclipse插件的安装
1.去官网下载 jd-eclipse插件 2.解压后的文件夹A放到eclipse的drops文件夹下 3.删掉多余文件,确保文件夹A下只有plugin 和 freature 两个文件夹 4.清空osg ...
- springAOP原理以及概念
需求:1.拦截所有业务方法2.判断用户是否有权限,有权限就让他执行业务方法,没有权限就不允许执行.(是否有权限是根据user是否为null作为判断依据) 思考: 我们该如何实现? 思路1: 我们在每个 ...
- codewar代码练习1——8级晋升7级
最近发现一个不错的代码练习网站codewar(http://www.codewars.com).注册了一个账号,花了几天的茶余饭后时间做题,把等级从8级升到了7级.本文的目的主要介绍使用感受及相应题目 ...
- 「51Nod1639」绑鞋带(概率
1639 绑鞋带 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起.可 ...
- ACM学习历程—Hihocoder 1178 计数(位运算 && set容器)(hihoCoder挑战赛12)
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Rowdark是一个邪恶的魔法师.在他阅读大巫术师Lich的传记时,他发现一类黑魔法来召唤远古生物,鱼丸. 魔法n能召 ...
- Scala学习——集合的使用和“_”的一些使用(中)
1.空格加_可以表示函数的原型 命令行代码: scala> def fun1(name:String){println(name)} fun1: (name: String)Unit scala ...
- redis和memcache的比较
1.数据类型支持不同 与Memcached仅支持key-value结构不同,Redis支持的数据类型更丰富,同时支持list.set.hash等数据结构的存储: 2.内存管理不同 在Redis中,并不 ...
- 来自word2013发布的测试文档
SWIG 是一个非常优秀的开源工具,支持您将 C/C++ 代码与任何主流脚本语言相集成. 此外,它向更广泛的受众公开了基本代码,改善了可测试性,让您的 Ruby 代码库某部分能快速写出高性能的 C/C ...
- skb_store_bits() 和 skb_copy_bits()
int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len); int skb_store_bits(c ...