shell编程规范与变量

1.shell脚本基础

什么是shell

shell是一个特殊的应用程序,它介于操作系统内核和用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

shell的应用场景

重复性操作
交互性任务
批量事务处理
服务运行状态监控
定时任务执行

2.shell脚本的编写格式

 脚本申明(解释器) :若第一行为“!/bin/bash",表示此行以下的代码语句是通过/bin/bash程序来解释执行,#!/bin/bash为默认解释器。还有其它类型的解释器,

比如

# !/usr/bin/python.

#! /usr/bin/expect.
.注释信息:以“#"开头的语句表示为注释信息,被注释的语句在运行脚本时不会被执行
可执行语句:比如echo命令,用于输出”"之间的字符串
如果想要把文本字符串和命令输出显示在同一行中,可以使用echo语句的 -n 参数
 

-----------------------------------------------------------------------------------------------

2.1shell脚本执行的方法

 -------------------------------------------------------------------------------------

2.2shell脚本执行逻辑和方式
顺序执行:程序按从上到下顺序执行

 

选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行

循环执行:程序执行过程中需要重复执行多次某段语句

执行方式

指定路径去执行文件(需要有执行权限)

指定解释器去执行(不需要权限)

------------------------------------------------------------------------------------------------

2.3重定向
1 交互式硬件设备

 2 重定向操作

 ---------------------------------------------------------------------------------------------------------------

3.shell脚本变量


3.1 变量的作用
用来存放系统和用户需要使用的特定参数(值)

变量名:使用固定的名称,由系统预设或用户定义

变量值:能够根据用户设置、系统环境的变化而变化

3.2 变量的类型
自定义变量:由用户自己定义、修改和使用;

特殊变量:环境变量,只读变量,位置变量,预定义变量。

3.3 自定义变量
1、定义新的变量:
格式:变量名=变量值

双引号" ":允许通过$符号引用其他变量值

单引号 ’ ':禁止引用其他变量值, $视为普通字符

反撇号 `` :命令替换,提取命令执行后的输出结果,和$(…)作用相同

变量作用范围
默认情况下,新定义的变量只在当前的Shell环境中有效,因此称为局部变量。当进入子程序或新的子Shell环境时局部变量将无法再使用。

可以通过内部命令export将指定的变量导出为全局变量,使用户定义的变量在所有的子Shell环境中能够继续使用。
 

 
永久设置变量,需要在/etc/profile文件里面添加

 

 

3.4.整数变量的算术计算
i=KaTeX parse error: Undefined control sequence: \* at position 10: (expr 12 \̲*̲ 5) i=((12*5))
i=[ 12 ∗ 5 ] l e t i = 12 ∗ 5 l e t i + + i = [12*5] let i=12*5 let i++ i=[12∗5]leti=12∗5leti++i=[i + 1 ] l e t i − − i = i+1] let i-- i=i+1]leti−−i=[i − 1 ] l e t i + = 2 i = i-1] let i+=2 i=i−1]leti+=2i=[i + 2 ] l e t i / = 2 i = i+2] let i/=2 i=i+2]leti/=2i=[i / 2 ] e x p r 变 量 1 运 算 符 变 量 2 v a r = i/2] expr 变量1 运算符 变量2 var=i/2]expr变量1运算符变量2var=(expr 变量1 运算符 变量2)
var=( ( 变 量 1 运 算 符 变 量 2 ) ) v a r = ((变量1 运算符 变量2)) var=((变量1运算符变量2))var=[变量1 运算符 变量2]
let var=变量1
运算符
变量2 i++是先赋值,再运算
++i是先运算再赋值
let i++ ## i++ 相当于 i=$[ KaTeX parse error: Expected 'EOF', got '#' at position 20: … ] let i-- #̲# i-- 相当于 i=[ KaTeX parse error: Expected 'EOF', got '#' at position 23: …] let i+=2 #̲# i+=2 相当于 i=[ KaTeX parse error: Expected 'EOF', got '#' at position 20: … ] let i/=2 #̲# i/=2相当于 i=[ $i / 2 ]

4.特殊变量
4.1环境变量
使用 env 命令可以查看到当前工作环境下的所有环境变量

常用环境变量:

变量USER 表示用户名称
变量HOME 表示用户的宿主目录
变量LANG 表示语言和字符集
变量PWD 表示当前所在工作目录
变量PATH 表示可执行用户程序的默认路径

4.2位置变量
当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。

$n:n为数字,$0代表命令本身,1~9代表第一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为 ${10}

-----------------------------------------------------------------

4.3预定义变量

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值