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脚本初识别的主要内容,如果未能解决你的问题,请参考以下文章