shell脚本和编程(一) | 青训营笔记

52 阅读1分钟

概念

终端:获取用户输入,展示运算结果的硬件设备。

tty:teletypeWriter 和终端等价.早印机. 在linux中是 输入/输出

终端模拟器:Mac Terminal、iTerm2等. 关联虚拟机tty的输入输出软件

Shell:command interpreter. 处理来自终端模拟器的输入. 解释执行之后输出结果给终端

Bash:shell的一种具体实现

构成

Unix shell既是命令解释器又是编程语言。作为命令解释器,shell为丰富的GNU实用程序集提供用户界面。

image.png

变量

1.自定义变量

image.png

image.png

2.系统环境变量

image.png

3.配置文件加载

source ~/.bashrc

image.png

4.运算符和引用

image.png

5.管道

管道与管道符 | ,作用是将前一个命令的结果传递给后面的命令

语法:cmd1 | cmd2

要求:管道右侧的命令必须能接受标准输入才行,比如grep命令,ls、mv等不能直接使用,可以使用xargs预处理

注意:管道命令仅仅处理stdout,对于stderr会予以忽略,可以使用set -o pipefail 设置shell遇到管道错误退出

image.png

6.重定向

输出重定向符号:

image.png

输入重定向符号:

image.png

7.判断命令

shell中提供了test、[、[[三种判断符号,可用于: 整数测试、字符串测试、文件测试

语法:

  • test condition
  • [condition]
  • [[condition]]

注意:

中括号前后要有空格符;

[和test是命令,只能使用自己支持的标志位,<、>、=只能用来比较字符串

中括号内的变量,最好都是用引号括起来

[[更丰富,在整型比较支持<、>、=,在字符串比较支持=~正则