问号-“?”
第一个作用是也是匹配字符,跟“*”不一样的是“?”只匹配1个字符。
另一个作用就是测试操作。
例如:
$? 获取文件执行或者命令执行的返回状态值
返回0是正常。非零是异常。
“$”
第一个作用是表示变量。
例如:
$a 名为a的变量
${a} 名为a的变量,大多数情况{}可省略,但是这种写法更加明确,推荐使用。
${}配合还可以完成参数替换。
配合其他字符,表示特殊参数
例如:
$@ 表示传递给函数或脚本的所有参数
$* 表示传递给函数或脚本的所有参数
当 $* 和 $@ 不被双引号" "包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔。
但是当它们被双引号" "包含时,就会有区别了:
"$*"会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。
"$@"仍然将每个参数都看作一份数据,彼此之间是独立的。
$$ 进程 ID 变量.这个$$变量保存运行脚本进程 ID
大括号-"{}"
第一个作用是其内逗号分隔的部分,配合括号外的命令完成命令操作。
例如:
cat {1.txt,2.txt,3.txt } > a123.txt
cp a123.{txt,backup}
代码块
被“{}”扩起来的代码,有一定限制作用。在其中间生辰的变量仅在括号中使用。括号内可以使用括号外的变量。
在{}结构中代码的I/O重定向。
第一对{},从文件t102.sh读取两行内容
第二对(),echo输出的4行内容,写入t102文件