学习 shell —— 参数的解析:$0/1/2、$#、 $@、$?(set -e)
2024-06-07 15:21:43
常遇到在 shell 脚本的开始使用 set
命令的情况。
0. set -e
-e 参数,通过 help set
,给出的说明:Exit immediately if a simple command exits with a non-zero status.(当一个 command 命令返回值为 0 时,命令执行成功,非零表示失败)。在”set -e”之后出现的代码,一旦出现了返回值非零,整个脚本就会立即退出。(通过 $? 查看命令的返回状态)
- linux中的set命令: “set -e” 与 “set -o pipefail”
1. $0/1/2
$0/1/2、$#、$@ 本质上是解析执行脚本时传递进来的参数。就好比 C 语言中的:
int main(int argc, char* argv[]){...
}
- $#:# 一般表示个数,等同于 argc
- $@:全部参数,等同于 argv
- $0:当前脚本名,等同于 argv[0]
- $1:argv[1]
- $2:argv[2]
- …
- ${10}:参数 > 9 必须包括在大括号内;
2. $?
$?:exit status variable,$? 记录着一个命令(或者函数、脚本等)的退出状态;
SUCCESS=0 if [$? -eq $SUCCESS] then echo "$1 can be installed" elseecho "$1 cannot be installed" fi
3. basename/dirname
- basename:去除(strip)路径信息;
- dirname:去除最后一层文件信息;
dirname /usr/bin/ -> /usr
最新文章
- Android深度探索--HAL与驱动开发----第一章读书笔记
- ServletConfig接口
- python 获取向上两级路径_全国计算机二级Python真题解析-1
- sqlilab--writeup (5~6) 布尔盲注
- 1.5编程基础之循环控制 32 求分数序列和 python
- PHP安装imagemagick扩展imagick
- 在Ubuntu下rtorrent编译安装笔记
- MS CRM 2011 Audit
- tp5 前台 点击显示一个弹窗
- mysql 触发器详情
- netbeans运行KEmulator
- 非常好用的354款Procreate新型笔刷
- iOS福利软件、P J软件、限免软件分享网站
- Python 小节案例-计算体脂率
- 小皮phpstudy中的mysql无法启动,启动就马上停止
- Laravel log channel 分组配置
- 数据库系统知识点总结与英文课件翻译
- VPS云主机怎么用?
- 字符编码的常用种类介绍
- golang $or $in $ge $gte 查询使用