Day24
运算续
let 工具
专门为变量服务,可以根据运算创建变量,不显示运算结果。
创建:let 变量名=运算式
使用:echo 变量名
修改变量值(自增减):let 变量名=变量 运算符 运算值 或者 let 变量名++||–(与其他语言的类似)
$[] ( ( ) ) 也 可 以 进 行 变 量 的 运 算 , 效 果 和 e x p r 相 同 , 此 方 法 括 号 中 变 量 不 用 使 用 (())也可以进行变量的运算,效果和expr相同,此方法括号中变量不用使用 (())也可以进行变量的运算,效果和expr相同,此方法括号中变量不用使用
Shell脚本的测试操作
test测试操作
test 选项 参数 或者 [ 参数1 操作符 参数1 ] 第二种中括号两侧都要保留空格,操作符两侧也要保留空格
常见的测试操作
字符串比较
[ 操作符 字符串 ]
[ 字符串1 操作符 字符串2 ]
整数值比较
[ 整数值1 操作符 整数值2 ]
操作符 | 含义 |
---|---|
-z | 字符串的值为空 |
- n | 字符串的值不为空 |
== | 两个字符串相同 |
!= | 两个字符串不相同 |
-eq | 等于 |
-ne | 不等于 |
-ge | 大于或等于 |
-le | 小于或等于 |
-gt | 大于 |
-lt | 小于 |
文件状态测试
[ 操作符 文件或目录 ]
操作符 | 含义 |
---|---|
-e | 判断对象是否存在 |
-d | 判断对象是否为目录 |
-f | 判断对象是否为一般文件 |
-r | 判断对象是否有读权限 |
-w | 判断对象是否有写权限 |
-x | 对象是否有可执行权限,是则为真 |
逻辑分隔操作
命令1 操作符 命令2 ……
[ 条件1 ] 操作符 [ 条件2 ]
操作符 | 含义 |
---|---|
&& | 给定条件必须都成立 |
|| | 给定条件中只有一个成立即可 |
/var/spool/mail/用户名:指定用户邮件的存放(这是个文件)
if选择结构
单分支结构
if 条件测试
then 命令
fi
双分支结构
if 条件测试
then 命令1
else 命令2
if
多分支结构
if 条件测试1
then 命令1
elif 条件测试2
then 命令2
else 命令n
if
循环
for循环
可以定义循环次数,有限的循环
遍历/列表式子循环
for 变量名 in 值列表
do
命令
done
C语言风格的for循环
通过变量控制,条件成立时循环
步长可控次数
for ((初值;条件;步长控制))
do
命令
done
sep工具
seq $变量名 :生成一个1到变量值的列表
while 循环
可以根据条件测试决定循环次数,可以实现无限循环。
while 条件测试
do
命令
done
autofs触发挂载
由autofs服务提供的“按需访问“机制
只需要访问挂载点,就会触发响应,自动挂载指定设备。
装包
yum -y install autofs
主配置文件
/etc/auto.master
挂载配置文件 /etc/auto.misc
启服务:systemctl restart autofs
触发挂载需要两级目录
第一级目录:监控目录
第二级目录:触发点子目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PlaBpr3K-1602548756588)(C:\Users\BJTT\AppData\Roaming\Typora\typora-user-images\1602242640470.png)]
autofs&NFS
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lc5m961Q-1602548756591)(C:\Users\BJTT\AppData\Roaming\Typora\typora-user-images\1602242597051.png)]
链路聚合
网卡team
作用:备份网卡设备,提高可靠性。
第一级目录:监控目录
第二级目录:触发点子目录
[外链图片转存中…(img-PlaBpr3K-1602548756588)]
autofs&NFS
[外链图片转存中…(img-Lc5m961Q-1602548756591)]
链路聚合
网卡team
作用:备份网卡设备,提高可靠性。
nmcli connection add type team con-name team0 ifname team0 connection autoconnect yes config ‘{“runner”:{“name”:“activebackup”}}‘