Shell 脚本和编程 | 青训营笔记

54 阅读1分钟

image.png

image.png

01 Shell基础概念

(1)概念

  • 终端:获取用户输入、展示运算结果的硬件设备
  • tty:teletypeWriter的简称,和终端等价。早期指电传印机。在linux中是输入/输出环境
  • 终端模拟器:Mac Terminal、iTerm2等,关联虚拟tty的输入输出软件
  • Shell:command interpreter,处理来自终端模拟器的输入,解释执行之后输出结果给终端
  • Bash:shell的一种具体实现(shell和bash的关系可以理解为类和实例的关系)

(2)发展

image.png

(3)构成 shell:命令行解释器、编程语言

image.png

02 命令和语法

(1)变量

image.png

  • 默认声明的是字符串

image.png

(2)自定义变量

image.png

image.png

(3)系统环境变量

image.png

image.png

(4)配置文件加载

image.png

登录式shell 和 非登录式shell(非登录式shell又分为交互式和非交互式,比如:sh test.sh)

(5)运算符和引用

image.png

(6)管道

image.png

image.png

xargs:将标准输入转化为参数列表的形式,然后交给ls去使用

(7)重定向

image.png

修改引用关系:

image.png

image.png

image.png

(8)判断命令

image.png

image.png

(9)分支语句

image.png

image.png

image.png

(10)循环

image.png

image.png

  • util条件成立的时候跳出循环

image.png

(11)函数

image.png

image.png

  • 函数内部一般使用local,local当前作用域生效,避免污染外面的全局作用域
  • unset撤销变量

(12)模块化

image.png

(13)常用命令

image.png

image.png

image.png

  • 展示前后的上下文

image.png

image.png

  • f表示:读取到文件末尾之后,不会停止执行,会等待输入

03 执行过程和原理

(1)执行

image.png -前面两种会在子进程中执行,最后一种会在当前进程中执行

(2)执行过程

image.png 内置命令

(3)shell展开

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

04 调试和前端集成

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png