变量和glob扩展机制 圆括号执行命令 双圆括号使用说明 双中括号使用说明
- 2015-06-13 18:31:00
- admin
- 原创 2374
一、变量和glob扩展机制
1、两次扩展:第一次-变量扩展,第二次-glob扩展;
2、alias只在终端上扩展,alias不在脚本中扩展;
getValue() {
echo $value
}
1、在函数被调用时,变量才进行替换;
2、变量替换后才传递给命令,变量包含空格,命令的参数会变成多个;
listArchive() {
ls *.tgz
}
在函数被调用时,glob通配符才进行替换;
二、圆括号执行命令
圆括号里面执行命令时会启动一个新shell,可以放心使用目录切换:
ps -ef | grep bash | grep -v grep | wc -l
1
(ps -ef | grep bash | grep -v grep | wc -l)
2
三、双圆括号使用说明
1、语法格式:((表达式1,表达式2…)),多个表达式使用英文逗号分隔,变量可以不加美元符号前缀;
2、在双圆括号结构中,可以像C语言一样写表达式,支持四则运算、逻辑运算;
3、在双圆括号结构中,可以像C语言一样写分支控制的条件测试;
四则运算:
a=1
((a=a+1)),a等于2
a=$((1,2,3)),a等于3
逻辑运算:
a=1
((a>=1)) && echo match
echo $((a>=1?1:0))
分支控制:
num=100
total=0
for((i=0;i<=num;i++))
do
((total+=i))
done
echo $total
total=0
i=0
while((i<=num))
do
((total+=i,i++))
done
echo $total
if((total>=5050));then
echo "ok"
fi
四、双中括号使用说明
1、单中括号和双中括号都用于条件测试;
2、双中括号支持逻辑运算:可以直接使用运算符&&、||、!;
3、双中括号支持包含操作:x =~ y,x是否包含y,y可以是正则表达式;