特殊变量
$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 是的
6