1、什么是shell

​ shell 是一个命令解释器、用户输入命令,解释器负责解释给内核,将处理后的结果反馈给用户。

2、交互式与非交互式

- 交互式shell:用户输入命令,解释器解释把处理后的结果反馈给用户的过程称之为交互式。
- 非交互式shell:shell执行文本中的命令 当执行到文件的末尾 bash退出
  父shell 不能继承子shell变量 子shell可继承父shell变量。

3、shell脚本的书写规范

​     (1)   目录统一
​     (2)   shell脚本的结尾要以.sh结尾
​     (3)   脚本的开头需要有解释器 /bin/bash /bin/sh
​     (4)   脚本中需要有作者信息 #Author lzy date version 做什么的
​     (5)   脚本每行 或者 一个语句 给一个注释
​     (6)   shell中的文字尽量使用英文 py都是中文
​     (7)   成对的符号一次性书写完毕 语句

4、shell脚本能做什么?

​     基础配置、安装程序、配置变更、业务部署、日常备份、信息采集、日志分析、服务扩容、服务缩容。

shell的主要作用是简化操作步骤,提高效率,减少人为干预,减少系统故障。

5、shell脚本预备知识

​   1、熟练使用vim编辑器

​   2、熟练使用linux基础命令

​   3、熟练使用linux三剑客

​   4、基础命令+基础服务+练习+思路

​ 5、能看懂shell脚本-->修改-->编写

    ​           练习+思路+分享

6、#!/usr/bin/bash 加与不加区别在哪?

​   1、如果你明确清楚这是一个什么类型的脚本,直接调用对应的解释器执行

​   2、如果你不清楚这是什么类型的脚本,直接使用./执行,那么会执行该脚本的第一行。如果第一行是#!/usr/bin/bash 或者没有写该行,那么都将使用默认的bash翻译。

​   问题:如果我是Python脚本,没有写开头,那么一定会报错

​ 默认查找的是bash解释器,而我的文件需要用Python解释器来翻译。

7、什么是变量

​   变量是shell中传递数据的一种方法,简单的来说就是用一个固定的字符串表示一个不固定的值,便于后续引用。

 8、定义变量的范围

​   1、大写开头,后面小写或者数字都OK

​   2、变量具有一定的含义

​   3、注意变量的写法 仅支持a=1

自定义变量

  var="hello world"

  echo $var

  echo ${var}_log

 $* 和 $@ 的区别

  可以看到不加引号时,二者都是返回传入的参数,但加了引号后,此时$*把参数作为一个字符串整体(单字符串)返回,$@把每个参数作为一个字符串返回.
01-31 23:48