莘县做网站推广,深圳品牌床垫有哪些,寻找哈尔滨网站建设,如何做产品展示网站目录
硬编码
硬编码的缺点
条件判断
$?
命令行语句
判断指定目录是否存在
判断指定文件是否存在
判断指定对象是否存在
表达式形式语句
判断对象是否存在
判断对象是否有权限
与、或、非 运算
与运算
或运算
非运算
比较大小
判断磁盘利用率实验步骤
字符串…目录
硬编码
硬编码的缺点
条件判断
$?
命令行语句
判断指定目录是否存在
判断指定文件是否存在
判断指定对象是否存在
表达式形式语句
判断对象是否存在
判断对象是否有权限
与、或、非 运算
与运算
或运算
非运算
比较大小
判断磁盘利用率实验步骤
字符串比较
逻辑表达式
if 语句
单分支结构
语法格式
语句原理
单分支if语句示例操作步骤
双分支结构
语法格式
语句原理
连通性测试实例操作步骤
多分支结构
语法格式
语句原理
多分支if语句示例操作步骤
case语句
语法格式
语句原理
case语句示例操作步骤
模拟sleep服务实例操作步骤
注册为系统服务调用脚本
服务管理方式
systemctl
service 硬编码
硬编码Hard Coding是指在程序代码中直接使用固定值而不是通过变量、配置文件或参数来动态获取这些值 比如在脚本中写入一个ping命令目标的IP地址固定为192.168.10.101直接嵌入常量或固定逻辑这就是硬编码 硬编码的缺点
难以维护当需要修改硬编码的值时需要直接修改源代码并重新编译、部署应用。这增加了出错的风险和维护成本。缺乏灵活性硬编码使得程序在不同环境中运行时缺乏灵活性。例如开发环境和生产环境的配置可能不同如果使用硬编码就需要为每个环境分别修改代码。可读性和可管理性差随着项目规模的增大硬编码会导致代码难以阅读和管理特别是当这些值分散在多个文件和模块中时。
条件判断
$?
检查上一个指令执行的结果状态
echo $?
如果状态正常就返回0
如果状态不正常就显示非0
命令行语句
判断指定目录是否存在
使用 test -d 目录路径 来判断指定目录是否存在
并使用echo $? 命令检测命令执行状态非0表示不正常 判断指定文件是否存在
test -f 文件路径 判断文件是否存在 判断指定对象是否存在 表达式形式语句
判断对象是否存在 判断对象是否有权限
-r读权限-w写权限-x执行权限 与、或、非 运算
逻辑运算符
与运算
当前一个条件成立时执行命令
示例[ $USER root ] echo 当前用户为root
解析当用户为root时在终端上输出“当前用户为root”
或运算
只要有一方的条件满足就执行命令
如果两个文件只有file1存在那么结果为真true如果两个文件只有file2存在结果为真true
如果两个文件都不存在结果为假false
if [ -f $file1 ] || [ -f $file2 ]; thenecho 文件存在
elseecho 文件不存在
fi
非运算
非运算会将 true 变为 false将 false 变为 true
示例[ ! -d /opt/test.txt ] echo 该文件不是目录
解析如果指定的文件 不是目录就在终端显示“该文件不是目录”
配合 就是 !不等于
示例[ $USER ! root ] echo 当前用户不为root
比较大小 运算符 说明 eq 等于equal ne 不等于not equal gt 大于greater ge 大于等于greater or equal lt 小于less le 小于等于less or equal
判断磁盘利用率实验步骤
通过 df 命令 并使用 grep 管道符和 awk 获取根分区行内容的利用率的一列 再添加一个管道符 指定%为分隔符 结果只剩下利用率的数字 再将该命令的结果赋值给一个变量接下来就可以做判断的操作了 通过表达式实现判断可以看到结果是否那么我们就可以通过判断的结果使用 if 语句来 字符串比较
使用表达式判断 需要注意的是语法格式是有要求的 逻辑表达式
与运算条件1 条件2 如果条件1执行成功也执行条件2
if 语句
if如果
如果判断的条件成立就执行指定的命令
单分支结构
语法格式 语句原理 单分支if语句示例操作步骤
cd 到 /opt 目录下创建一个脚本文件 文件内容如下 新建一个用户并设置密码然后登录该用户 使用tom的身份执行此脚本就成立了我们指定的条件不是root用户状态码也指定为了100
并且后续的 ls /opt命令没有执行因为前一条语句没有执行成功 双分支结构
语法格式 语句原理 连通性测试实例操作步骤
新建编辑一个脚本文件 写入内容如下
指定ping命令的请求次数、间隔时间、超时时间和添加位置参数
/dev/null 是“黑洞文件”作用是任何写入到该文件的数据都会被丢弃在当前脚本下的作用是丢弃标准输出和错误的输出信息效果是不会在终端显示 测试执行该脚本得到结果如下 如果在巡检时有上百上千台机器需要做连通性测试呢
就可以编辑一个 主机列表 把所有主机的IP地址写进去再将该列表引用到脚本里让脚本通过该列表获取每个IP地址逐个测试实现自动化
多分支结构
语法格式 语句原理 多分支if语句示例操作步骤
新建编辑脚本文件输入以下内容 保存并退出测试该脚本 case语句
case情况
语法格式 语句原理 case语句示例操作步骤
新建编辑脚本文件并写入以下内容 或通过 |或运算两个范围同时判断 模拟sleep服务实例操作步骤
新建编辑脚本文件输入以下内容 增加执行权限 需要注意的是使用相对路径时在执行脚本内部的$0命令会找不到test03脚本文件因为 $0 仅包含脚本名而不包含脚本文件的路径
而使用绝对路径调用时$0就包含了调用文件时输入的绝对路径所以在执行脚本内部的$0命令时就能找得到脚本文件了 注册为系统服务调用脚本
修改脚本文件增加必须的规则chkconfig
35开机自启的运行级别3、5也可以写为 - 表示所有运行级别
80启动优先级当系统启动时开机自启的优先级数字越大优先级越低
20关闭优先级关闭系统时关闭服务的优先级 再将文件拷贝到指定位置
在脚本中加入了chkconfig规则就可以通过chkconfig命令将脚本注册为系统服务 注册为系统服务后就可以通过service命令对该服务进行操作 系统启动时自动运行该服务 服务管理方式 systemctl 串行启动如果系统的守护进程是systemd管理系统服务的就是 systemctl systemctl start|stop|restart|reload|status|enable|disable httpdsystemctl 选项 服务名称 service 并行启动如果系统的守护进程是init管理系统服务的就是 service 管理在CentOS 7往后系统内的init是systemd的链接 service httpd start|stop|restart|reload|statusservice 服务名称 选项通过chkconfig 服务名 on 将该服务设为开机自启需要将脚本文件放置在 /etc/init.d/ 目录下该脚本需要有执行权chmod x