shell脚本初识别

Posted 老王教你学Linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本初识别相关的知识,希望对你有一定的参考价值。

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

 $* 和 $@ 的区别

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

以上是关于shell脚本初识别的主要内容,如果未能解决你的问题,请参考以下文章

代码片段:Shell脚本实现重复执行和多进程

Shell脚本编程初体验

Shell编程-03-Shell脚本初步入门

《跟老男孩学Linux运维之shell编程实战》-第一章 shell脚本初步入门

shell 脚本 片段

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]