Shell编程规范与变量

目录

Shell脚本概述

一、Shell脚本的概念

二、Shell脚本应用场景

三、Shell脚本的作用

四、Shell脚本的构成

构成:

五、Shell脚本的执行

编写Shell脚本

赋予可执行权限

六、重定向

1、交互式硬件设备

2、重定向操作

3、管道操作 |

七、Shell脚本的变量

变量的作用

变量的类型

命名要求

八、自定义变量

定义一个新的变量

查看变量的值 

赋值时使用符号 

 变量追加值

Shell编程规范与变量

特殊的Shell变量 

环境变量

位置变量

预定义变量 


Shell脚本概述

一、Shell脚本的概念

  • 将要执行的命令按顺序保存到一个文本文件
  • 给该文件可执行权限
  • 可结合各种Shell控制语句以完成更复杂的操作

二、Shell脚本应用场景

  • 重复性操作 例如:可以帮助我们解决类似定期备份文件等重复性工作
  • 交互性任务 例如:可以帮助我们解决需要繁琐配置密钥解决交互的问题
  • 批量事务处理 例如:可以帮我们在批量递归查询某文件时,稳定精确的找到我们所需要的文件
  • 服务运行状态监控 例如:当有大量服务时,人为的去一条条监控明显不现实,这时就可以用脚本来进行监控
  • 定时任务执行(绝对路径) 例如:可以帮助我们完成例如定时发布或定时备份等操作

三、Shell脚本的作用

自动化运维
批量化重复操作可以编写脚本结合计划任务自动周期运行
减轻管理员工作量
提高处理文本文件的速度
避免配置出错

四、Shell脚本的构成

构成:

 脚本申明(解释器):第一行开头"#!/bin/bash",表示此行一下的代码语句是通过/bin/bash程序来结实执行,#!/bin/bash为默认解释器,还有其他类型的解释器,比如:

#!/usr/bin/python    #!/usr/bin/expect

 注释信息:以“#”开头的语句表示为注释信息,<u>被注释的语句在运行脚本时将不被执行</u>

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

五、Shell脚本的执行

编写Shell脚本

使用vim文本编辑器
每行一条Linux命令,按执行顺序依次编写 

赋予可执行权限

使脚本具有可执行属性 

方法一:指定路径去执行文件,脚本文件路径(绝对路径与相对路径)

 方法二:指定Shell去执行脚本

通过bash命令找到Bash解释器所在的目录,然后再运行,只不过多了一个查找的过程

六、重定向

1、交互式硬件设备

  • 标准输入:从设备(字符设备:键盘鼠标)接收用户输入的数据
  • 标准输出:通过设备(显示器)向用户输出数据
  • 标准错误:通过设备(显示器)报告执行出错信息

2、重定向操作

3、管道操作 |

将管道符号"|"左侧的命令输出的结果,作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。

ps aux | wc -l #查看当前进程的数量
echo "123456" | passwd --stdin zhangshan#批量修改登录码,stdin模拟键盘输入

七、Shell脚本的变量

变量的作用

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

变量的类型

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

自定义变量:由用户自己定义,修改和使用
环境变量:由系统维护,用于设置工作环境
只读变量:只可以读取不可以更改
位置变量:通过命令行给脚本传递参数
预定义变量:Bash中内置的一类变量,不能修改

命名要求

  • 区分大小写
  • 不能使用程序中保留和内置变量:if,for,hostname
  • 只能使用数字、字母及下划线,且不能以数字开头,注意:不支持持短横线"-",和主机名相反
  • 不要使用内置的变量,使用英文尽量使用词义通俗易懂
  • 大驼峰 StudentFirstName
  • 小驼峰 studentFirstName
  • 下划线 student_name 

八、自定义变量

定义一个新的变量

  • 变量名以字母或下划线开头,不能以数字符号开头;区分大小写,建议全大写

变量名=变量值 #定义一个新的变量
或/补:
declare [+/-][rxi][变量名称=设置值]
+/-  "-"可用来指定变量的属性,"+"则是取消变量所设的属性。
-f   仅显示函数。
r   将变量设置为只读。
x   指定的变量会成为环境变量,可供shell以外的程序来使用。
i   [设置值]可以是数值,字符串或运算式。

查看变量的值 

echo $变量名 #查看变量的值,$为变量替换的代表符号

unset 变量值 #取消变量

赋值时使用符号 

 

 变量追加值

格式:变量名+=追加值

 

Shell编程规范与变量

expr 整数 运算符 整数

运算符号介绍
+加法
-减法
\*乘法
/除法
%取余
expr 12 \* 5
echo $[12*5]
echo $((12*5))
let i=12*5
echo $i
例:
[root@localhost~]#let i++
[root@localhost~]#echo $i
61
i++ 是先赋值 再加一;相当于i=$[$i]
++i 是先加一 再赋值;相当于[$i=]
echo $[RANDOM%34 +1]

特殊的Shell变量 

环境变量

变量的作用范围:
默认情况下,新定义的变量只在当前的Shell环境中有效,因此称为局部变量。当进入子程序或新的子Shell环境时,局部变量将无法再使用。
可以通过内部命令export将指定的变量导出为全局变量,使用户定义的变量在所有的子Shell环境中能够继续使用。

格式一:export 变量名
格式二:export 变量名=变量值
#两种格式可以混合使用

位置变量

表示为$n,n为1~9之间的数字

 

预定义变量 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值