一、需要记住的特殊参数:
$0 shell名称或shell脚本名称 $n(1-9) 第n个shell参数 $# 位置参数的个数 “$*” "$1 $2 $3 ...$n” “$@” “$1” “$2” “$3”...”$n” $? 最近执行的命令的退出状态 $$ 当前shell脚本的PID $! 最近启动的后台作业的PID
二、需要记住的基本扩展参数:
形式 设置了var 没有设置var ${var:-string} $var string ${var:+string} $string null ${var:=string} $var string(并且执行var=string) ${var:?string $var (返回string然后退出)
- 有“:” === 运算表达式测试“存在”和“非空”。
- 没有“:” === 运算表达式仅测试“存在”。
- 三、需要记住的替换参数:
形式 结果 ${var%suffix} 删除位于var结尾的suffix最小匹配模式 ${var%%suffix} 删除位于var结尾的suffix最大匹配模式 ${var#prefix} 删除位于var结尾的suffix最小匹配模式 ${var##prefix} 删除位于var结尾的suffix最大匹配模式
基本重定向(redirection)运算符(在此[n]表示定义文件描述符的可选参数):
[n] > file 重定向标准输出(或 n)到file [n] >> file 重定向标准输出(或 n)到file [n] < file 将file重定向到标准输入(或 n) [n1] > &n2 重定向标准输出(或 n1)到n2 2 > file > &2 重定向标准输出和错误输出到file | command 将标准输出通过管道传递给command 2 > &1 | command 将标准输出或错误输出通过管道传递给command
四、shell的重定向
- stdin: 标准输入 (文件描述符 === 0)
- stdout: 标准输出 (文件描述符 === 1)
- stderr: 标准错误 (文件描述符 === 2) shell 允许你通过使用 exec 内嵌一个任意的文件描述符来打开文件。