特殊变量
$0
:获取当前执行的Shell脚本的文件名,如脚本中包含路径,则输出也包括路径$n
:获取当前执行的Shell脚本的第n个参数值,如n>9,则需要使用用大括号,如${10},各参数间用空格进行分隔
:获取当前执行的Shell脚本传入参数的总个数$#
$*
$@
:这两个都代表所有位置参数。但是,当它们被双引号包围时,它们的行为就不同了。"$*"
会将所有参数视为一个整体,而"$@"
会将每个参数分别处理。$-
: 表示当前 shell 的选项$?
:获取上一个命令或脚本的执行状态值$$
:获取当前执行的Shell的进程号(PID)$!
:获取上一个在后台工作的进程的进程号$_
:获取在些之前执行的命令或脚本的最后一个参数
变量展开
${var}
:返回${var}的内容${!var}
:!
用于间接引用,意味着 "获取名为$var
值的变量的值"${!var*}
: 展开开结果为所有以var
为前缀的变量的名字${#var}
:返回${var}的字符长度${var:offset}
:返回${var}从位置offset之后开始提取字符至结束${var:offset:length}
:返回${var}从offset之后,提取长度为length的字符${var#word}
:返回从${var}开头开始删除最短匹配的word子符串${var##word}
:返回从${var}开头开始删除最长匹配的word子符串${var%word}
:返回从${var}结尾开始删除最短匹配的word子符串${var%%word}
:返回从${var}结尾开始删除最长匹配的word子符串${var/oldstring/newstring}
:使用newstring替换第一个匹配的字符oldstring${var//oldstring/newstring}
:使用newstring替换所有匹配的字符oldstring${var:-word}
:如果变量var的值为空或未赋值,则将word做为返回值,常用于防止变量为空或未定义而导致的异常${var:=word}
:如果变量var的值为空或未赋值,则将word赋值给var并返回其值。${var:?word}
:如果变量var的值为空或未赋值,则将word做为标准错误输出,否则则输出变量的值,常用于捕捉因变量未定义而导致的错误并退出程序${var:+word}
:如果变量var的值为空或未赋值,则什么都不做,否则word字符将替换变量的值
如果省略冒号,则运算符仅检测变量是否未赋值
Comments 3 条评论
博主 TNT
大佬搞编程是兴趣吗
博主 赫萝
@TNT 是的
博主 mk
6