/images/hugo/avatar.png

6.6 函数和参数传递

函数和参数传递

/images/linux_mt/linux_mt.jpg

本节我们来学习 bash shell 编程的第六部分参数传递与函数,包括以下内容:

  1. 如何向脚本传递参数
  2. bash 函数
  3. 局部作用域

1. 参数传递

1.1 位置参数

所谓位置参数是 bash 中,脚本或函数接收参数的形式,除了位置参数,脚本中还内置了一些特殊参数,用于保存特定的值。参数的对应关系如下所示

上下文管理器和 else 块

本章内容

  • for、while 和 try 语句的 else 子句
  • EAFP 与 LBYL
  • 上下文管理器协议
  • with 语句和上下文管理器
  • contextlib 模块

1. else 子句

作用:

  1. 能让代码更易于阅读
  2. 不用设置控制标志或者添加额外的 if 语句

控制逻辑:

6.5 字符串处理

字符串处理

/images/linux_mt/linux_mt.jpg

本节我们来学习 bash shell 编程的第五部分字符串处理,内容包括:

  1. 字符串的切片,基于位置取子穿
  2. 基于模式取子串
  3. 查找和替换
  4. 大小写转换
  5. 变量赋值操作

bash 中获取变量的值可以使用 ${VARIABLE},字符串操作就是在此基础上的扩展。

迭代器和生成器

当我在自己的程序中发现用到了模式,我觉得这就表明某个地方出错了。程序的形式应该仅仅反映它所要解决的问题。代码中其他任何外加的形式都是一个信号,(至少对我来说)表明我对问题的抽象还不够深——这通常意味着自己正在手动完成的事情,本应该通过写代码来让宏的扩展自动实现 — Paul Graham

6.4 数组与算数运算

数组与算数运算

/images/linux_mt/linux_mt.jpg

本节我们来学习 bash shell 编程的第四部分内容数组与算数运算。

1. 数组

数组和字典是编程中非常常用的数据结构,但是 bash 对它们支持都比较有限。原因我们在本章第一节就说过,bash 本质上并不能算一种语言,因此也很少被拿来做复杂的编程。它更适合利用 Linux 中已有的命令完成特定功能。所以 bash 对复杂数据结构的支持很有限。bash 4.0 之后才开始支持字典,默认也只支持一维数组。下面我们将通过数组的声明,赋值和引用来讲解数组的使用。

运算符重载

本章将讨论:

  • Python 如何处理中缀运算符中不同类型的操作数
  • 使用鸭子类型或显式类型检查处理不同类型的操作数
  • 中缀运算符如何表明自己无法处理操作数
  • 众多比较运算符(如 ==、 >、 <=,等等)的特殊行为
  • 增量赋值运算符(如 +=)的默认处理方式和重载方式

1. 运算符重载基础

Python 限制: