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

64 阅读1分钟

1、首先要明白为什么学习Shell

  • ①Linux服务器的基本操作和管理
  • ②前端Node.js服务的进程管理、问题排查、资源监控等运维操作
  • ③使用Shell编写TCE、SCM、Docker脚本,完成服务编译和部署

2.了解相关概念

  • 终端:获取用户输入、展示运算结果的硬件设备
  • tty:teletypeWriter的简称、和终端等价,早期指电脑打印机,在linux中是输入\输出 环境
  • 终端模拟器:Mac Teminal、iTem2等,关联虚拟tty的输入输出软件
  • shell:command interpreter,处理来自终端模拟器的输入,解释执行输出结果给终端
  • Bash:shell的一种具体实现。

3.变量

类型作用域声明方式规范
自定义变量当前shell=字符串、整型、浮点型、日期型
环境变量当前shell及其子shellexport、declare-x
系统环境变量所有shell启动加载

4.自定义变量

1.基本语法

(1)定义变量:变量=值

(2)撤销变量:unset 变量

(3)声明静态变量:readonly变量,注意:不能unset

2.变量定义规则

(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。

(2)等号两侧不能有空格

(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。

(4)变量的值如果有空格,需要使用双引号或单引号括起来。

3.shell中预置变量 $@ 与 @* 的区别

* 和 @ 不被双引号" "包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔;但是当它们被双引号" "包含时,就会有区别了:

$*会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。

$@仍然将每个参数都看作一份数据,彼此之间是独立的。