俺学习和使用Shell过程中积累的一些东西,希望对某些看官有用。另,本人使用bash环境。
Shell预设环境变量
| 环境变量 |
说明 |
| $HOME |
当前用户主目录 |
| $PATH |
冒号分割的用来搜索命令的目录的几何 |
| $PS1 |
命令提示符,例如[\u@\h/\W$]给出了user@host/folder $这样的提示符 |
| $PS2 |
二级提示符,通常仅仅包含一个> |
| $IFS |
输入分割域,通常为空白符,即空格、制表符、回车 |
| |
|
| $0 |
shell脚本的文件名 |
| $# |
调用本脚本时提供的参数个数 |
| $$ |
shell脚本的进程号 |
| $! |
后台进程的进程号 |
| $? |
上一个进程的退出状态 |
| $1, $2, ……, $n |
脚本的参数,n超过9时需要用${n} |
| $* |
包含了所有的参数,各参数以$IFS分割 |
| $@ |
类似$*,但当$IFS为空时,各参数不会粘到一块儿,”$*”和”$@“的扩展不同 |
参数扩展与模式匹配
| 参数形式 |
扩展后 |
| x{y,z} |
xy xz |
| ${x}{y, z} |
${x}y ${x}z |
| ${x}{y, $z} |
${x}y ${x}${z} |
| ${param#pattern} |
从param前面最小删除pattern的匹配 |
| ${param##pattern} |
从param前面最大删除pattern的匹配 |
| ${param%pattern} |
从param后面最小删除pattern的匹配 |
| ${param%%pattern} |
从param后面最大删除pattern的匹配 |
| ${param/pattern/string} |
从param中用string替换pattern的第一次匹配,string可为空 |
| ${param//pattern/string} |
从param中用string替换pattern的所有匹配,string可为空 |
| ${param:3:2} |
截取$param中索引3开始的2个字符 |
| ${param:3} |
截取$param中索引3至末尾的字符 |
| ${@:3:2} |
截取参数列表$@中第3个开始的2个参数 |
| ${param:-word} |
若$param为空或为设置,则参数式返回word,$param不变 |
| ${param:+word} |
若$param为非空,则参数式返回word,$param不变 |
| ${param:=word} |
若$param为空或为设置,则参数式返回word,同时$param设置为word |
| ${param:?message} |
若$param为空或为设置,则输出错误信息message,若包含空白符,则需引号 |
Be the first to comment on this entry.