脚本输入参数
$0 : 表示当前脚本文件名;
$1,$2,...,$m : 表示输入到脚本或函数中的m个输入参数;
$* : 表示输入到脚本或函数的所有参数,即相当于$1 $2 ...... $m ;
$@ : 在不被双引号包含时,与$*的含义相当,但被双引号包含时,$*会将所有参数作为一个整体输出("$1 $2 $3 ……"),而$@则会把各个参数分开($1 $2 $3 ……);
脚本运行状态
$? : 表示上个命令的退出状态或函数的返回值;
$$ : 表示脚本当前进程id;
$! : 表示后台最后运行的进程id,也就是最近运行的进行的id,不一定是结束的;
$- : 显示Shell命令使用的当前选项;
重定向
> 或者 1> : 标准输出
>> 或者 1>> : 标准输出追加
2> : 标准错误输出
2>> : 标准错误输出追加
< 或者 0< : 标准输入
<< : 标准输入中读入
n >& m : 将输出文件 m 和 n 合并,例如,2>&1 :错误输出和标准输出绑定输出
n <& m : 将输入文件 m 和 n 合并
其他符号
# : 用于注释
! : 感叹号用于执行历史命令,例如!ls将会执行最近的以ls开头的命令,也可以配合history命令,根据历史命令变化,执行对应编号的命令,比如:!1,执行第一条历史命令;
$() : 用于执行子命令,并将其输出作为变量的值,比如a=$(ls -l);
: : 冒号用于定义空命令;
. : 点号和source命令作用相当 ,用于在当前环境下,执行脚本文件,运行之后变量在当前环境有效;
` : 反引号的功能是命令替换,将反引号中的字符串做为命令来执行;
[] : test命令的简化形式,或者表示数组;
(()) : 数学计算扩展;