俺学习和使用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,若包含空白符,则需引号
Tags: .
你好!除了代码,此处没有多少原创之物,皆为本人搜集、整理、总结之记录与心得,欢迎转载分享!转载时请尽量注明出处,将不胜感激。祝你健康、快乐!
Home

Be the first to comment on this entry.

Name(required)
Mail (required),(will not be published)

RFC: Request For Comments. Orz..

Website(recommended)