Linux 之 Shell 特殊变量详解
Shell
特殊变量: $0
,$n
,$!
,$@
,$#
,$$
,$*
,$-
,$?
.
试验平台:
CentOS Linux release 7.6.1810
特殊变量列表
变量 | 含义 |
---|---|
$0 | 运行的当前脚本文件名;需要注意的如果入参超过 10 个(包含 10),需要使用 ${10} 这种形式 |
$n | 传递给脚本或函数的入参; n 是一个数字,例如,第一个参数是 $1,第二个参数是 $2 |
$! | Shell 最后运行的后台的 PID |
$@ | 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到 |
$# | 传递给脚本或函数的参数个数 |
$$ | 当前 bash 的进程号,对于 Shell 脚本,就是这些脚本所在的进程 ID |
$* | 传递给脚本或函数的所有参数 |
$- | 使用 Set 命令设定的内容 |
$? | 上个命令运行的退出状态,或函数的返回值 |
1.效果
执行结果如下:
2.$n
n
为 10
的情况
需要注意的是$10 不能获取第十个参数,获取第十个参数需要 ${10}
。当 n>=10
时,需要使用 ${n} 来获取参数
执行结果如下:
3.$*
和 $@
的区别
$*
和 $@
都表示传递给函数或脚本的所有参数,不被双引号 (" ")
包含时,都以 "$1" "$2" … "$n"
的形式输出所有参数。但是当它们被双引号 (" ")
包含时,"$*"
会将所有的参数作为一个整体,以 "$1 $2 … $n"
的形式输出所有参数;"$@"
会将各个参数分开,以 "$1" "$2" … "$n"
的形式输出所有参数。
执行结果如下:
4.退出状态与返回值
$?
可以获取上一个命令的退出状态。就是查看其运行是否有报错
$?
也可以表示函数的返回值
执行的结果如下:
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1331 0 2020-12-10
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2025-04-10
今日天气
随机推荐
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:15条
- 本站总访问量 399999 次
@ymidsuwfoa 这篇文章不错!
@svmuvwpuqi 真棒!
@smdxydrauu 博主太厉害了!
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...