作用1:用于引用变量内容变;等号赋值,变量赋值
作用2:用于行结束符
作用3:变量的间接引用;
作用4:变量的参数替换
作用5:特殊位置符
$0返回脚本名称,绝对路径
`basename $0`仅返回脚本名称,没有路径
踩过的坑
1,
$11-->${11}vim中看颜色
2,单引号,双引号,反引号,无引号作用
双引号与单引号的异同:
相同:忽略特殊字符;
差异:单引号忽略所有特殊字符,双引号不忽略$,\,`(反引号);
引号嵌套问题
在双引号””里面使用这两种符号,需要用反斜杠转义
echo ''"$addr"''="$addr"=addr的值
系统没那么聪明 他看到前面2个单引号就以为是一对了 他哪知道第一个和第4个才是一对
3,`反引号 相当于$()
4,括号
( ) 把 command group 放在subshell去执行,也叫做 nested sub-shell。
{ } 则是在同一个 shell 內完成,也称为 non-namedcommand group。
如果在shell里面执行“函数”,需要用到{},实际上也就是一个命令群组;
A,()只是对一串命令重新开一个子shell进行执行
B,{}对一串命令在当前shell执行
C,()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
D,()最后一个命令可以不用分号
E,{}最后一个命令要用分号
F,{}的第一个命令和左括号之间必须要有一个空格
G,()里的各命令不必和括号有空格
H,()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令
两个括号(()),是代表算数扩展,就是对其包括的东西进行标准的算数计算——注意,不能算浮点数
参考:http://blog.youkuaiyun.com/miyatang/article/details/8077123