1、单引号、双引号、反引号区别
单引号、双引号用于当变量出现空格时,用引号括起来,加以区分
单双引号的区别:
单引号括起来的所有字符都是普通字符,就算是特殊字符也等同为普通字符
双引号中的“$”、"\"以及反引号都是有特殊含义的,“$”表示引用变量的值,反引号表示引用命令
反引号`命令`和$(命令)的的作用是一样的,调用命令的输出或者把命令的输出赋予变量,但是反引号的使用容易和单引号搞混,所以使用$(命令)更好一点
2、大小括号区别
父shell 与 子shell
在bash中是可以调用新的bash的,
在原来的shell中执行pstree 进程为
调用新的bash 执行patree 进程为
我们的命令都是通过ssh远程服务连接的,在ssh中生成了第一个bash,就是父shell
因为在第二条命令前又执行了bash命令,所以在第一个bash中生成了第二个bash,也就是子shell,我们是在子shell中运行pstree的。
大小括号的区别
()执行一串命令时,需要重新开启一个子shell来执行
{}执行一串命令时,在当前shell中执行
()与{}都是把一串命令放在括号中,命令之间用;隔开
()最后一条命令可以不用分号;而{}的最后一条命令也需要分号
{}的第一条命令和左括号之间必须有一个空格,()里的各命令不必和括号有空格
()和{}括号中的某条命令的重定向只影响该命令,但括号外的重定向会影响括号里的所有命令
由例可以看出 ,在执行一串命令时,如果使用的小括号(),那么这串命令 所做的操作都只在子shell中生效,一旦命令结束回到父shell中,那么所做的修改就会失效;如果使用的大括号{},那么这串命令所有的操作都是在父shell中执行的,就算命令结束,所做的修改依然生效。