常遇到在 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

最新文章

  1. Android深度探索--HAL与驱动开发----第一章读书笔记
  2. ServletConfig接口
  3. python 获取向上两级路径_全国计算机二级Python真题解析-1
  4. sqlilab--writeup (5~6) 布尔盲注
  5. 1.5编程基础之循环控制 32 求分数序列和 python
  6. PHP安装imagemagick扩展imagick
  7. 在Ubuntu下rtorrent编译安装笔记
  8. MS CRM 2011 Audit
  9. tp5 前台 点击显示一个弹窗
  10. mysql 触发器详情
  11. netbeans运行KEmulator
  12. 非常好用的354款Procreate新型笔刷
  13. iOS福利软件、P J软件、限免软件分享网站
  14. Python 小节案例-计算体脂率
  15. 小皮phpstudy中的mysql无法启动,启动就马上停止
  16. Laravel log channel 分组配置
  17. 数据库系统知识点总结与英文课件翻译
  18. VPS云主机怎么用?
  19. 字符编码的常用种类介绍
  20. golang $or $in $ge $gte 查询使用

热门文章

  1. Qt引用Boost问题
  2. MySQL的存储过程优缺点
  3. Spark在集群上执行代码案例(中文切词)
  4. java多线程 run start_java多线程中run和start区别
  5. PTA 1003 Emergency
  6. 2020-08-30
  7. 第八届蓝桥杯第五题取数位
  8. NVIDIA DeepStream5.0官方总结(改动版)
  9. 莫烦Tensorflow教程(1~14)(转)
  10. MySQL的主动优化和被动优化_MySQL“被动”性能优化汇总