$(())用法,可以执行算数运算,加$能返回它的运算结果,类似于let,expr之类的,但是写法不同

[root@VM_207_144_centos opt]# echo $((1+2))
3
[root@VM_207_144_centos opt]# expr 1 + 2
3


$()用法,表示一个范围,会把结果返回给变量,类似于``这样的

[root@VM_207_144_centos opt]# echo $(pwd)
/opt
[root@VM_207_144_centos opt]# a=$(pwd)     
[root@VM_207_144_centos opt]# echo $a
/opt
[root@VM_207_144_centos opt]# b=`pwd`
[root@VM_207_144_centos opt]# echo $b
/opt


${}用法,不加$的话就是一个代码块,表示一段命令,一般用法:[ condition ] && { 里面的命令全部都执行 },如果加$的话一般用在对变量的处理上,比如求变量长度:echo ${#var} 设置默认值:${var:=默认值} 之类的 

[root@VM_207_144_centos opt]# a=kiki
[root@VM_207_144_centos opt]# echo ${a} 
kiki
[root@VM_207_144_centos opt]# echo ${#a}
4
[root@VM_207_144_centos opt]# a=${var:=111} 
[root@VM_207_144_centos opt]# echo $a
111
[root@VM_207_144_centos opt]# echo $var
111



\n与\t的区别

\n 换行 将光标移动到下一行第一格 相当于平时用的回车

\r 回车 将光标移动到当前行第一格



printf的使用

http://www.runoob.com/linux/linux-shell-printf.html


%d、%s、%f的意义

http://blog.csdn.net/jack__h/article/details/4932511



$@与$*的区别

wKioL1jac9WCgR9wAAAPFVa0uvE101.png


wKioL1jac9SwPNakAAAQ1vCT4ek984.png