- shell中各种括号的作用()、(())、[]、[[]]、{}
${},大括号用于确定变量的范围;
- $(( 数学运算 ))
0. 引号
单引号、双引号、飘号( ` ,英文状态下的键盘上的波浪号)
- 单引号不解析变量
- 双引号会解析变量,用的较多
- 飘号是执行内容,类似于$(…)
[root@hadoop0 ~]# echo $(date)
Sat Mar 12 17:26:28 EST 2016
[root@hadoop0 ~]# echo `date`
Sat Mar 12 17:27:44 EST 2016
1. 大括号
touch {a,b}.txt ⇒ a.txt b.txt
touch {a..d}.txt ⇒ a.txt b.txt c.txt d.txt
2. 小括号
- $(cmd)和符号
cmd
(注意这不是单引号,在美式键盘上,`是ESC下面的那个键)有相同之处 - shell扫描一遍命令行,发现了
$(cmd)
结构,便将$(cmd)
中的cmd执行一次,得到其标准输出,再将此输出放到原来命令echo $(ls)
中的$(ls)
位置,即替换了$(ls)
,再执行echo命令。
$ ls
a b
$ echo $(ls)
a b
$ echo `ls`
a b
3. 小括号与大括号的区别:
- ()和{}都是对一串的命令进行执行,但有所区别:
- ()只是对一串命令重新开一个子shell进行执行
- {}对一串命令在当前shell执行
- ()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
- ()最后一个命令可以不用分号
- {}最后一个命令要用分号
- {}的第一个命令和左括号之间必须要有一个空格
- ()里的各命令不必和括号有空格
- ()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令
4. 括号辨异
shell中各种括号的作用()、(())、[]、[[]]、{}
- 大括号:
- touch {a,b}.txt ⇒ a.txt b.txt
- touch {a..d}.txt ⇒ a.txt b.txt c.txt d.txt
- 小括号:
- $(cmd)和符号
cmd
(注意这不是单引号,在美式键盘上,是ESC下面的那个键)有相同之处 </li>
$(cmd)
<li>shell扫描一遍命令行,发现了结构,便将
$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令
echo $(ls)中的
$(ls)位置,即替换了
$(ls)`,再执行echo命令。
- $(cmd)和符号
$ ls a b $ echo $(ls) a b $ echo `ls` a b
小括号与大括号的区别:
- ()和{}都是对一串的命令进行执行,但有所区别:
- A,()只是对一串命令重新开一个子shell进行执行
- B,{}对一串命令在当前shell执行
- ()和{}都是对一串的命令进行执行,但有所区别:
- 大括号: