/images/hugo/avatar.png

6.8 bash 配置文件

bash 配置文件

/images/linux_mt/linux_mt.jpg

bash 的配置文件也是 shell 脚本,用于定义环境变量,别名或运行一些特殊用途的脚本。比如一些特殊用途的别名,我们不想每次登陆 shell 后都重新设置,可以定义在配置文件中;又比如想将一些特定目录添加到 PATH 环境变量中等等。要理解 bash 的配置文件,我们首先需要明白 bash 的两种登陆类型,它们会分别读取不同的配置文件,所以本节的内容如下:

futrue

1. futrue 的概念

1.1 对 futrue 的理解

期物:

  • 包括:
    • concurrent.futures.Future 类
    • asyncio.Future 类
    • Twisted 的 Deferred 类
    • Tornado 的 Future 类
  • 作用:
    • 指一种对象, 表示异步执行的操作
    • 类的实例表示可能已经完成或者尚未完成的延迟计算
  • 理解:
    • 期物封装待完成的操作, 可以放入队列
    • 完成的状态可以查询, 得到结果(或抛出异常)后可以获取结果(或异常)

2. concurrent.futures

组成:

6.7 程序交互与信号捕捉

程序交互,退出状态与信号捕捉

/images/linux_mt/linux_mt.jpg

本节我们开始学习 bash shell 编程的第七部分,包含以下内容:

  1. 如何在程序执行过程中与用户交互
  2. bash 编程调试
  3. 设置脚本执行的状态返回值
  4. 如何在 bash 中使用 ASCII 颜色
  5. dialog 实现窗口化编程
  6. 信号捕捉

1. 用户交互

bash 中与用户交互主要通过 read 命令完成,read 可以输出一段文字提示用户输入指定内容,并将用户输入保存在特定变量中,read 的使用方式如下

协程

1. 协程的概念

1.1 对协程的理解

协程理解:

  • 协程是用户空间的线程,编程语言必需提供接口实现线程调度
  • python 中 yield 是一种流程控制工具,使用它可以实现协程

生成器的编写风格:

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 语句

控制逻辑: