变量说明
$! : Shell最后运行的后台的PID
$$ : Shell本身的PID(ProcessID)
$- : 使用Set命令设定的当前Shell的Flag
$0 : Shell本身的文件名
$1 : 第一个参数
$n 或 ${n} : 第n个参数, n大于等于10时(两位数及以上时)用 ${n}
$# : 执行脚本时, 传入参数的个数
$@ : 执行脚本时, 传入的所有参数的数组集合
$* : 执行脚本时, 传入的所有参数,以空格连接的字符串
$? : 脚本执行完的返回值
set 命令:可以用来定制shell环境
$- 变量
h:hashall,打开选项后,Shell 会将命令所在的路径hash下来,避免每次都要查询。通过set +h将h选
项关闭
i:interactive-comments,包含这个选项说明当前的 shell 是一个交互式的 shell。所谓的交互式shell,
在脚本中,i选项是关闭的
m:monitor,打开监控模式,就可以通过Job control来控制进程的停止、继续,后台或者前台执行等
B:braceexpand,大括号扩展
H:history,H选项打开,可以展开历史列表中的命令,可以通过!感叹号来完成,例如“!!”返回上最近的
一个历史命令,“!n”返回第 n 个历史命令
set 命令实现脚本安全
-u 在扩展一个没有设置的变量时,显示错误信息, 等同set -o nounset
-e 如果一个命令返回一个非0退出状态值(失败)就退出, 等同set -o errexit
-o option 显示,打开或者关闭选项
显示选项:set -o
打开选项:set -o 选项
关闭选项:set +o 选项
-x 当执行命令时,打印命令及其参数,类似 bash -x