Linux骚操作之第二十五话shell脚本编程规范与变量

前言

Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容。每一个合格 的Linux系统管理员或运维工程师,都需要能够熟练地编写Shell脚本语言,并能够阅读系统及各类软件附带的Shell脚本内容。只有这样才能提升运维人员的工作效率,适应曰益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础。

一、什么是shell

Shell俗称壳(用来区别于核),是指"为使用者提供操作界面"的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。简而言之,它将人类的指令化为计算机能解读的“二进制”,计算机内核调用shell解读出来的二进制,随后,硬件调用内核执行人类的指令。Linux无法离开shell,换句话说,Linux离开shell则无法正常运行。

二、shell脚本概念

1、将要执行的命令按顺序保存到一个文本文件中

2、给该文件可执行权限

3、可结合各种shell控制语句以完成更复杂的操作

三、shell脚本应用场景

1、重复性操作

2、交互性任务

3、批量事务处理

4、服务运行状态监控

5、定时任务执行

四、shell脚本的功能

1、自动化完成软件的安装部署

如安装部署LAMP架构服务

2、自动化完成系统的管理

如批量添加用户

3、自动化完成备份

如数据库定时备份

4、自动化的分析处理

如网站访问量

五、走进shell

1、用户登陆shell

1.1、登陆后默认使用的shell程序,一般为/bin/bash
在这里插入图片描述
1.2、不同shell的内部指令、运行环境等会有所区别
在这里插入图片描述2、shell脚本创建与运行

2.1、第一行”#!/bin/bash”,脚本申明(默认解释器),表示此行以下的代码语句是通过/bin/bash程序执行,还有其他类型的解释器,

2.2、注释信息:以“#”开头的语句表示为注释信息,被注释的语句在脚本运行时不会被执行,注意,尽量不要用中文注释,尽量用英文注释,以防本机切换环境后产生中文乱码的困扰

2.3、可执行语句:如echo 命令,用于输出””之间的字符串

2.4、案例

2.4.1、创建脚本
在这里插入图片描述
2.4.2、编辑脚本内容
注意:变量名在取名时,请做到见名知意
在这里插入图片描述
2.4.3、权限
在这里插入图片描述
2.4.4、第一种解决思路
在这里插入图片描述
2.4.5、第二种解决思路
在这里插入图片描述
2.4.6、第三种解决思路
在这里插入图片描述
2.4.7、第四种解决思路
在这里插入图片描述
2.4.8、第五种解决思路
在这里插入图片描述3、重定向与管道操作

3.1、交换式硬件设备
在这里插入图片描述3.2、重定向操作
注意:改变输入、输出方向,不使用默认设备 3.2.1输入 < 从指定的文件读取数据,而不是从键盘输入 --stdin识别标准输入
在这里插入图片描述
3.2.2、输出 > 将输出结果保存到指定的文件(覆盖原有内容) 文件不存在,自动创建新文件
在这里插入图片描述
3.2.3、>> 将输出结果追加到指定的文件
在这里插入图片描述
3.2.4、错误 2> 将错误信息保存到指定的文件
在这里插入图片描述
3.2.5、2>> 将错误信息追加到指定的文件中
在这里插入图片描述
3.2.6、1.1.1、&> 将标准输出、标准错误的内容保存到同一个文件中
在这里插入图片描述
3.3、管道符号
3.3.1将左侧的命令输出结果,作为右侧命令的处理对象
在这里插入图片描述

六、变量的作用和类型

1、变量的作用

1.1、用来存放系统和用户需要使用的特定参数1.1.1、变量名:使用固定的名称,由系统预设或用户定义
1.1.2、能够根据用户设置、系统环境的变化而变化

2、变量的类型

2.1.1、自定义变量:由用户自己定义、修改、使用
2.1.2、特殊变量:环境变量,只读变量、位置变量、预定义变量

3、定义一个新变量

A)格式“变量名=变量值”注意:变量名以字母或下划线开头,区分大小写,建议全大写,名称中不能有特殊字符
在这里插入图片描述
B)查看变量的值,使用echo变量名,可同时查看多个变量值,以空格分开

C)双引号:允许通过符号引用其他变量值

D)单引号:禁止引用其他变量值,视为普通字符
在这里插入图片描述E)反撇号:命令替换,提取命令执行后的输出结果
在这里插入图片描述在这里插入图片描述
F、换行和空格
在这里插入图片描述
在这里插入图片描述G、包来源在这里插入图片描述

七、read命令

1、基本命令

read -p “提示信息” 变量名 可实现简单交互

2、交互式定义变量

在这里插入图片描述

3、案例

在这里插入图片描述
在这里插入图片描述

八、export命令

设置变量的作用范围,默认为局部变量,只在当前shell生效

1、格式1:export 变量名 …

2、格式2:export 变量名=变量值 …

3、案例
在这里插入图片描述
在这里插入图片描述

九、整数变量的运算

1、常用运算符

1.1、加法运算:+
1.2、减法运算: -
1.3、乘法运算: *
1.4、除法运算: /
1.5、求模(取余)运算: %
1.6、中括号和小括号
在这里插入图片描述

2、案例:编写一个计算器

在这里插入图片描述
在这里插入图片描述

总结

shell将人类的指令化为计算机能解读的“二进制”,计算机内核调用shell解读出来的二进制,随后,硬件调用内核执行人类的指令。在使用linux编写shell脚本时,首先要明白,脚本都是以.sh结尾,若想调用该脚本,共有5种方法,主要的可以通过修改权限和sh 文件.sh的方式,其次,在重定向中,最容易混淆的就是“>”输出,以及"<"输入,开口向外则为输出,开口向内输入,
输入的意思是从指定的文件读取数据,而不是从键盘输入,而输出将输出结果保存到指定的文件(覆盖原有内容) 文件不存在,自动创建新文件;第三、2>> 将错误信息追加到指定的文件中,注意,此处经常出现在判断语句中,收集报错信息,第四,在使用变量时,单引号是禁止引用变量值,双引号是允许通过变量名调用变量值,反撇号是命令替换,提取命令执行后的输出结果,在循环、case语句中经常使用,第五、若想换行或者空格,请一定不要忘记加 -e 和 \n或者\t;第六、read命令加上-p 或者-s(不显示内容)可实现简单交互,第七:export 可将变量设置为全局变量。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值