Shell编程规范与变量

Shell的介绍

Shell是命令解释器,起到“翻译”的作用。介于系统内核与用户之间,负责解释命令行。接收命令,转换为二进制。

Shell脚本的概述

将平时使用的各种 Linux 命令按顺序保存到一个文本文件中,然后添加可执行权限,这个文件就成为一个 Shell 脚本了;可结合各种Shell控制语句以完成更复杂的操作

Shell脚本的应用场景(作用)

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

编写一个Shell脚本

编写脚本代码

使用VIM文本编辑器(shell脚本通常以.sh作为后缀名)每行一条Linux命令,按编写顺序执行命令。

赋予可执行权限

使脚本具有可执行权限

脚本格式三部分

脚本声明
注释信息(可省略)
可执行语句

执行脚本的方法

方法一:脚本文件路径(绝对路径或相对路径)必须有x(执行)权限
方法二:sh脚本文件路径(即不考虑路径也不考虑X权限)
方法三:source脚本文件路径也可以通过"."来执行(即不考虑路径也不考虑X权限)

Shell变量的介绍、类型

变量的介绍

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

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

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

变量的类型

自定义变量:由用户自己定义、修改和使用,只在自己的shell环境中有效,因此成为本地变量

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

自定义变量

  • 定义一个新的变量(不能以数字开头,名称中不要包含特殊符号)

变量名以字母或下划线开头,区分大小写,建议全大写

变量可以有空值

变量名=变量值(等号两边没有空格,一个等于号是赋值,两个等于号是等于)

  • 查看变量的值

echo $=变量名

  • 变量赋值
    双引号":里面的特殊字符(!、$、\、')有特殊含义

    单引号’:里面的特殊字符(!、$、\、')无特殊含义

    反撇号:命令替换,提取命令执行后的输出结果 =$()

    反撇号不能嵌套使用、反撇号内的命令优先执行

  • 将用户输入的内容赋值给一个变量,通常在shell脚本中与用户进行交互

read [-p “变量提示信息”] 变量名

引用变量

通常在变量名称前添加“$”,可以应用一个变量的值
当变量名称容易和后面的其他字符混淆时,添加{}起到分界作用

删除变量

使用unset命令删除变量
unset 变量名
变量删除后不能再次使用

数值变量的运算

  • 只能进行整数的运算,不含小数,字符串

expr 变量1 运算符 变量2 [运算符 变量3]

  • 常用运算符

加法:+
减法:-
乘法:*
除法:/
求余:%
双小括号(())在shell中是一种数学计算命令,它可以进行最基本的加减乘除计算,还能进行大于、小于、等于运算,也能进行与、或、非的逻辑运算;在(())中使用变量时不用加 ,直接使用即可。 ,直接使用即可。 ,直接使用即可。的作用就是获取(())的结果

变量的作用范围

新定义的变量只能在当前的Shell环境中使用,又称局部变量,当进入入子程序或新的子 Shell 环境时,局部变量将无法再使用
局部变量只能在创建的脚本中使用
环境变量又称全局变量,可以在创建的shell以及任意子进程shell中使用

  • 环境变量

环境变量:用来保存于系统shell环境相关的数据,适用于一切shell环境
所有的环境变量都是系统全局变量,可用于所有子进程中
配置文件:/etc/profile (全局)、~/.bash_profile(局部)
env命令:查看当前系统默认的环境变量

Bash内置的Shell变量

  • 常见的系统环境变量

环境变量名一般大写
PWD、PATH(用于设置可执行程序的默认搜索路径)
USER、SHELL、HOME

自定义环境变量

  • 设置环境变量的方法

    格式1:export 变量名
    格式2:export 变量名=变量值

若让变量在所有shell环境中永久生效,需要在/etc/profile中声明变量

特殊的Shell变量

  • 只读变量,不允许被修改也不能删除

    readonly 变量名 设置为只读变量

  • 位置变量
    位置变量也叫位置参数,表示$n,n为1~9之间的数字,当n>9时,用{10}表示

  • 预定义变量
    由bash程序预先定义好的特殊变量,用于只能使用,既不能创建新的预定义变量,也不能重新给预定义变量赋值
    $#:命令行中位置变量的个数
    $*:所有位置变量的名称
    $?:上一条命令执行后返回的状态,当返回值为0时表示执行正常,非0为出错
    $0:当前执行的脚本名
    $$:获取当前进程的PID

重定向与管道操作

  • 交互式硬件设备

标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息

  • 重定向操作
    在这里插入图片描述
    将原来从标准输入设备(键盘)输入的数据,改变从其他文件或设备输入;
    将原来从标准输出设备(显示器)输出的数据,输出到其他文件或设备
    在这里插入图片描述
  • 特殊重定向:EOF

EOF是END Of File的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名(三个大写字母即可),在linux中按ctrl+d就代表EOF。EOF 一般会配合cat能够多行文本输出。作用:文件内添加内容
格式先后顺序可以改变

  • 管道符操作符号“|”

将左侧的命令输出结果,作为右侧命令的处理对象

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值