一. 小括号
1.单小括号
1.1 命令组:括号中的命令会重开一个shell顺序执行;所以括号中的变量不能被脚本余下的部分使用;括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。
~/Desktop/Shell$ x=10 ~/Desktop/Shell$ echo $x 10 ~/Desktop/Shell$ (x=8;echo $x) 8 ~/Desktop/Shell$ echo $x 10
1.2 命令替换:等同于 `cmd`,shell扫描一遍命令行,发现了 $(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。
~/Desktop/Shell$ echo $(date) 2016年 07月 15日 星期五 10:00:36 CST
注:对于多条命令执行:
(cmd1;cmd2;cmd3)
新开一个子shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后可以没有分号.
{ cmd1;cmd2;cmd3;}
在当前shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后必须有分号, 第一条命令和左括号之间必须用空格隔开.
对{}和()而言, 括号中的重定向符只影响该条命令, 而括号外的重定向符影响到括号中的所有命令.1.3 用于初始化数组。如:array=(a b c d)
~/Desktop/Shell$ arr=(a b c d) ~/Desktop/Shell$ echo ${arr[1]} b
2.双小括号
2.1 for 循环
#!/bin/bash for (( i = 0; i < 5 ; i++)) do echo "Welcome $i times!" done
输出结果为:
Welcome 0 times! Welcome 1 times! Welcome 2 times! Welcome 3 times! Welcome 4 times!
注:以上 for 循环的另一种写法:for i in 0 1 2 3 4
- 2.2 算数运算
未完待续!