shell脚本之变量与if语句(笔记)

您所在的位置:网站首页 shell变量调用 shell脚本之变量与if语句(笔记)

shell脚本之变量与if语句(笔记)

2023-08-19 12:17| 来源: 网络整理| 查看: 265

第一章hell编程规范与变量

技能目标 掌握shell脚本编程规范 掌握管道,重定向 掌握shell环境变量

在linux系统中Shell脚本可以批量处理,自动化地完成一系列的维护任务 Shell脚本就是要将执行的命令按“顺序”保存到一个文本文件中后缀为“.sh”,并给文件“x”权限,方便一次性执行的一个程序文件 Shell编程规范 Shell脚本充当一个”命令解释器“将命令解释”,并输出执行结果。/etc/shells文件保存当前系统所有支持的shell脚本种类 一个完整的shell脚本应包含3部分 如下 脚本声明 注释信息 可执行语句 vim mama.sh //创建并编辑shell脚本文件后缀为.sh

chmod 777 mama.sh //给文件x权限 执行shell脚本:两种方法“.[文件名]”或“sh[文件名]”

管道与重定向 管道“|”:把位于管道符“|”左侧命令输出的结果,作为右侧的输入(处理对象),同一行命令多个使用 重定向: 输入重定向:是指把原本要输出到屏幕的数据信息写入到指定文件中 语法:>(要清空) >>(不清空) 2>(输出错误信息) 符号 作用 命令 > 文件 将标准输出重定向到文件中(清空原有文件的数据) 命令 2> 文件 将错误输出重定向到文件中(清空原有文件的数据) 命令 >> 文件 将标准输出重定向到文件中(不清空) 命令 2>> 文件 将错误输出重定向到文件中(不清空) 命令 &>> 文件 将标准错误都写入到文件中(不清空)

Shell脚本变量 常见shell变量类型包括:自定义变量,环境变量,位置变量,预定义变量 自定义变量 由系统用户自己定义的变量,只有在用户自己的shell环境中有效 格式:[变量名]=[变量值]等号两边没有空格,且变量名需以字母或_开头 QQ=QQ //创建自定变量 Version=8.5.1 //创建自定变量 查看变量值:通过变量名前添加“$”符号,使用echo命令查看(可以多个)。对于没有定义的变量将直接显示 [root@localhost /]# echo $QQ $Version //查看变量值 QQ 8.5.1 //显示变量值 [root@localhost /]# echo $QQ ${Version}45 //没有定义的变量加{} QQ 8.5.145 //紧跟其后显示

变量赋值的转义符 双引号(”):允许引用其他变量 ,不进行转义处理 单引号(’):禁止引用其他变量,其中所有的变量为单纯的字符串 反撇号(`):命令替换,允许某个命令的结果复制给变量,实现嵌套命令替换操作已改用“()”来代替反撇号(把其中的命令执行后返回结果) 反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串 read命令——读取单行数据 格式:read【选项】 选项: -p:后面跟提示信息,即在输入前打印提示信息 -t:后面跟秒数,定义输入字符的等待时间 -e: 在输入的时候可以使用命令补全功能 -n: 后跟一个数字,定义输入文本的长度

设置变量的作用范围 默认情况下,我们新定义的变量只有在当前shell环境有效,也称局部变量,使用export将指定的变量导为“全局变量”(要在定义变量的shell环境下配置) 格式1:export 变量名 … 格式2:export 变量名=变量值 … -n:删除指定的变量。变量实际上并未删除 -p:列出所有的shell赋予程序的环境变量

数值变量运算(每项一定要有空格隔开) Shell变量的数值运算多用于脚本程序的过程控制(循环次数,使用量比较) 格式:expr [变量1] [运算符] [变量2] ····计算数值变量要是有“$” 注意项: 空格: 隔开每个项 反斜杠\:\后一个操作符为单纯字符,放在 shell 特定的字符前面 引号”:对包含空格和其他特殊字符的字符串要用引号括起来 选项: Length:计算字串长度 Index:抓取第一个字符数字串出现的位置 实例:使用expr进行四则运算 [root@localhost ~]# expr ( 20 - 10 ) * 2 + 100 120 //每项用空格分隔 \作用使后面的“(”为单纯字符 常用的操作符及含义

操作符 含义 +, -, /*, /, % 分别表示加,减,剩,除,求余

, =, 分别表示大于,小于,等于,大于或等于 &&:逻辑与 表示当前面的命令执行成功后才会执行它后面的命令 ||:逻辑或 表示当前面的命令执行失败后才会执行它后面的命令 !:逻辑非 表示把条件测试中的判断结果取相反值 $? 显示上一条命令执行后的返回值,只有为0表示成功

特殊变量 特殊变量包括:环境变量,位置变量,预定义变量 环境变量 环境变量是出于运行linux系统需要提前创建的一些列变量 env命令——查看当前环境下的环境变量 选项: -i:开始一个新的空的环境 -u:从当前环境中删除指定的变量 最重要的几个环境变量 变量名称 作用 HOME 用户的主目录(即家目录) SHELL 用户在使用的 Shell 解释器名称 HISTSIZE 输出的历史命令记录条数 HISTFILESIZE 保存的历史命令记录条数 MAIL MAIL LANG 系统语言、语系名称 EDITOR 用户默认的文本编辑器 PATH 定义解释器搜索用户执行命令的路径 PS1 Bash 解释器的提示符 位置变量 方便通过命令行为程序提供操作参数 当执行命令操作时,第一个字段表示命令或脚本程序,其他从左到右为位置变量,也称位置参数使用$1,$2,$3···$9表示。 实例: [root@localhost ~]# vim xiaomao.sh //创建一个shell脚本

[root@localhost ~]# . xiaomao.sh 12 34 //测试位置变量

预定义变量 预定义变量:定义好的变量用户直接使用。 $*:表示位置参数内容 $?:表示前一条命令的返回状态 $0:表示当前执行脚本或程序的名称 $#:表示命令行中位置参数个数

第二章shell编程之条件语句

技能目标 掌握shell脚本条件测试 掌握if语句编程

条件测试 Shell环境根据命令执行后的返回值($?)来判断是否执行成功。返回值为0则表示成功。

test命令——检查条件是否成立(三种格式) 格式: test 条件表达式 [ 条件表达式 ] //常用,方括号内空格隔开 [[ ]]

文件测试 文件测试:根据给定的文件路径,判断对应的是文件还是目录,或有无读,写,执行的权限等。(echo $?验证 0表示成功) 格式:[ -d 文件路径 ] //判断文件路径是否为目录 操作选项: -d:测试文件是否为目录 -e:测试目录或文件是否存在 -f:测试是否为文件 -r -w -x:分别表示测试当前用户对文件是否有读,写,执行权限 实例: [ -d /memdia/chrom ] //测试文件是否问目录 echo $? //返回结果为0 则成功,是目录 整数值比较 整数值比较:根据给定的两个整数值,判定二者的关系。 操作选项: -eq:等于 = -ne:不等于 -gt:大于 > -ge:大于等于 -lt:小于



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3