文章目录
此链接通往 Bash Shell 编程学习的目录导航 ,从入门到放弃,感兴趣的可以去看看:
1、小括号 ——( ):
1.1、作用:
①、命令组:
格式:(cmd1;cmd2;cmd3...) —— 将多个命令用 () 括起来,组成一个命令组!
注意:括号中的命令会新打开一个子shell进程去执行!
★ 1、括号中的变量问题;()中的变量不能被脚本中的其他部分使用!
★ 2、如果需要在脚本中执行 exit 命令,也不能在()中执行,因为他关闭的是()中打开的子shell!
★ 3、cmd 之间使用;隔开,最后一个命令结尾不需要跟分号(;)
★ 4、() 与 cmd 之间 不需要有空格!
②、命令替换:
格式: $(cmd) ;$(cmd) = $`cmd`
shell 扫描一遍命令行,发现了 $(cmd);然后先执行一遍$(cmd) 中的 cmd;
然后将执行后的标准输出结果,放进 $()中!
eg:
root@zhengzelin:~# for i in $(seq 0 4);do echo $i;done
0
1
2
3
4
# tcsh shell 不支持命令替换功能!
③、初始化数组:
顾名思义,将数组初始化!
eg: array =(a b c d)
1.2、关于 ( ) 中使用的运算符:
1、算术运算符:+ - * / % (必须结合命令 expr来实现)
2、整数运算符: 无
3、字符串运算符:无
4、逻辑运算符:无
5、文件运算符:无
root@zhengzelin:~# a=$(expr "1" + "2" );echo $a
3
2、双小括号 —— (( )):
2.1、作用:
①、整数运算:
这个在 shell 中实现运算中提到过:
eg:
root@zhengzelin:~# a=$((1+2)) | echo $a
3
注意: 只支持整数运算!
②、重定义变量值:
root@zhengzelin:~# a=1;((a++));echo $a
2
③、((expr)):
要求是: (( )) 中的表达式(expr) 或 运算符 满足 C语言运算规则!
2.2、关于 (( )) 中使用的运算符:
1、算术运算符:+ - * / %
2、整数运算符: == 、!= 、> 、>= 、< 、<=
3、字符串运算符:= (比较两个字符串是否相等)
4、逻辑运算符:& && | ||
5、文件运算符:无!(不可使用)
"算术运算:"
root@zhengzelin:~# a=$(( 1 * 2 ));echo $a
2
"整数运算:"
root@zhengzelin:~# (( 1 != 2 ));echo $?
0
"逻辑测试:"
root@zhengzelin:~# ((<