#每个参数代表的意义
$$:shell本身的PID
$!:shell最后运行的后台process的PID
$?:最后运行命令的结束代码返回值(0,表示没有错误,其他都表示有错误)
$*和$@:所有参数列表。如[$*],以"$1 $2 $n"的形式输出所有参数
$#:添加到shell的参数个数
$0:shell本身的文件名
$1-$n:添加到shell的各参数值,$1是第1个参数,$2是第二个
#:井号用于注释,可在脚本中添加注释,提高代码可读性。
!:感叹号用于执行历史命令,例如 !ls 将会执行最近的以 ls 开头的命令。
$:美元符号用于引用变量,例如 $HOME 将会展开为当前用户的家目录。
*:星号表示通配符,用于匹配任意字符,例如 *.txt 将会匹配所有以 .txt 结尾的文件。
?:问号也是一个通配符,用于匹配单个字符,例如 file?.txt 将会匹配 file1.txt、file2.txt 等文件。
[]:方括号也是一种通配符,用于匹配一个字符集中的任意字符,例如 [abc] 将会匹配字符 a、b 或 c。
{}:花括号用于构建命令序列,例如 cp {file1,file2}.txt dir/ 将会拷贝 file1.txt 和 file2.txt 到 dir/ 目录中。
():圆括号用于创建子 shell,例如 (ls; echo "done") 将会在子 shell 中执行 ls 命令,并在完成后输出 done。
|:管道符用于将一个命令的输出传递给另一个命令作为输入,例如 ls | grep "txt" 将会列出当前目录下所有以 .txt 结尾的文件。
> 和 >>:大于号和双大于号用于将命令的输出重定向到一个文件或设备中,例如 ls > files.txt 将会将 ls 命令的输出保存到 files.txt 文件中。>> 与 > 的区别在于,它会将命令的输出追加到文件末尾而不是覆盖文件。
<:小于号用于将文件内容作为命令的输入,例如 sort < input.txt 将会将 input.txt 文件内容作为 sort 命令的输入。