SHELL02 - 数值运算 条件测试 if选择结构

 一、数值运算

 1. 整数运算

1)基本运算类别

四则运算

+ - * / 

* 取余数运算

- 求模 : num1 %  num2

2) expr 运算工具

计算指定的表达式,并输出结果

- 格式: expr 整数1    运算符   整数2  。。。

- 乘法操作应采用\*转义,避免被作为shell通配符

 

3)[&nbsp;]&nbsp;</span><span style="font-family:sans-serif;">算式替换</span></strong></span></span></p><p><strong><span style="color:rgb(63,63,63);">使用<span style="font-family:'Liberation Sans';"> [&nbsp;]&nbsp;</span><span style="font-family:sans-serif;">算式替换</span></strong></span></span></p><p><strong><span style="color:rgb(63,63,63);">使用<span style="font-family:'Liberation Sans';"> [ ] 或 (())&nbsp;</span><span style="font-family:sans-serif;">表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">格式:&nbsp;</span><span style="font-family:'Liberation Sans';"> (())&nbsp;</span><span style="font-family:sans-serif;">表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">格式:&nbsp;</span><span style="font-family:'Liberation Sans';"> [ 整数1  运算符  整数2 … …]

乘法操作*无需转义,运算符两侧可以无空格

- 引用变量可省略</span><span style="font-family:sans-serif;">符号</span></span></strong></p><p><strong><span style="color:#3f3f3f;">-&nbsp;</span><span style="color:#ff0000;"><span style="font-family:sans-serif;">计算结果替换表达式本身,可结合</span><span style="font-family:'Liberation Sans';">echo&nbsp;</span><span style="font-family:sans-serif;">命令输出</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;X=43</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;echo&nbsp; </span><span style="font-family:sans-serif;">符号</span></span></strong></p><p><strong><span style="color:#3f3f3f;">-&nbsp;</span><span style="color:#ff0000;"><span style="font-family:sans-serif;">计算结果替换表达式本身,可结合</span><span style="font-family:'Liberation Sans';">echo&nbsp;</span><span style="font-family:sans-serif;">命令输出</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;X=43</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;echo&nbsp; <script type="math/tex" id="MathJax-Element-21">符号

计算结果替换表达式本身,可结合echo 命令输出

# X=43

# echo </script>[X+21]

# echo  ((x21)), ( ( x − 21 ) ) , ((x*21))

4)变量的自增/减等操作

使用[&nbsp;]</span><span style="font-family:sans-serif;">,或者</span><span style="font-family:'Liberation Sans';">let</span><span style="font-family:sans-serif;">命令来完成</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">结合</span><span style="font-family:'Liberation Sans';">echo&nbsp;</span><span style="font-family:sans-serif;">命令查看结果</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;i=43</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;echo&nbsp; [&nbsp;]</span><span style="font-family:sans-serif;">,或者</span><span style="font-family:'Liberation Sans';">let</span><span style="font-family:sans-serif;">命令来完成</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">结合</span><span style="font-family:'Liberation Sans';">echo&nbsp;</span><span style="font-family:sans-serif;">命令查看结果</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;i=43</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;echo&nbsp; [i+=2]

# echo [i-=8]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;let&nbsp;i++&nbsp;;&nbsp;echo&nbsp; [i-=8]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;let&nbsp;i++&nbsp;;&nbsp;echo&nbsp; i

# let  I-=7;echo i</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/88911ea2d891873f2b1569edb6a8116b.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;</span></strong><span style="color:rgb(63,63,63);"><strong>&nbsp;</strong></span></p><p><strong><span style="color:rgb(63,63,63);">2.&nbsp;<span style="font-family:sans-serif;">小数运算</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">1)&nbsp;<span style="font-family:sans-serif;">整数运算的局限性</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">bash&nbsp;<span style="font-family:sans-serif;">内建机制仅支持整数值运算</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;expr&nbsp;<span style="font-family:sans-serif;">命令、</span><span style="font-family:'Liberation Sans';"> i</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/88911ea2d891873f2b1569edb6a8116b.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;</span></strong><span style="color:rgb(63,63,63);"><strong>&nbsp;</strong></span></p><p><strong><span style="color:rgb(63,63,63);">2.&nbsp;<span style="font-family:sans-serif;">小数运算</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">1)&nbsp;<span style="font-family:sans-serif;">整数运算的局限性</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">bash&nbsp;<span style="font-family:sans-serif;">内建机制仅支持整数值运算</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;expr&nbsp;<span style="font-family:sans-serif;">命令、</span><span style="font-family:'Liberation Sans';"> [ ] 算式替换  不支持有小数的运算

# expr 123 + 45.678

# echo [3.14*2]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">2)&nbsp;<span style="font-family:sans-serif;">使用</span><span style="font-family:'Liberation Sans';">bc</span><span style="font-family:sans-serif;">实现小数运算</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">多数<span style="font-family:'Liberation Sans';">linux</span><span style="font-family:sans-serif;">系统默认安装此工具</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">支持高精度的数值运算</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">直接运行</span><span style="font-family:'Liberation Sans';">bc</span><span style="font-family:sans-serif;">可进入交互式运算界面,</span><span style="font-family:'Liberation Sans';">quit</span><span style="font-family:sans-serif;">退出</span></span></strong></p><p><strong><span style="color:#3f3f3f;">-&nbsp;</span><span style="color:#ff0000;"><span style="font-family:sans-serif;">设置&nbsp;</span><span style="font-family:'Liberation Sans';">scale=n&nbsp;</span><span style="font-family:sans-serif;">可约束小数位</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;bc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">打开</span><span style="font-family:'Liberation Sans';">bc</span><span style="font-family:sans-serif;">计算器程序</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">12.34*56.78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">提交表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">700.66&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></strong></p><p><strong><span style="color:rgb(63,63,63);">scale=4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">将可用的小数位增加为</span><span style="font-family:'Liberation Sans';">4</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">12.34*56.78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">重新计算表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">700.6652&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#quit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">退出计算器</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">结合管道向<span style="font-family:'Liberation Sans';">bc&nbsp;</span><span style="font-family:sans-serif;">发送表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">多个表达式以分号分隔</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">通过</span><span style="font-family:'Liberation Sans';">echo</span><span style="font-family:sans-serif;">命令</span><span style="font-family:'Liberation Sans';">+</span><span style="font-family:sans-serif;">管道传递要计算的表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;A=12.34</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#echo&nbsp;“ [3.14*2]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">2)&nbsp;<span style="font-family:sans-serif;">使用</span><span style="font-family:'Liberation Sans';">bc</span><span style="font-family:sans-serif;">实现小数运算</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">多数<span style="font-family:'Liberation Sans';">linux</span><span style="font-family:sans-serif;">系统默认安装此工具</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">支持高精度的数值运算</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">直接运行</span><span style="font-family:'Liberation Sans';">bc</span><span style="font-family:sans-serif;">可进入交互式运算界面,</span><span style="font-family:'Liberation Sans';">quit</span><span style="font-family:sans-serif;">退出</span></span></strong></p><p><strong><span style="color:#3f3f3f;">-&nbsp;</span><span style="color:#ff0000;"><span style="font-family:sans-serif;">设置&nbsp;</span><span style="font-family:'Liberation Sans';">scale=n&nbsp;</span><span style="font-family:sans-serif;">可约束小数位</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;bc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">打开</span><span style="font-family:'Liberation Sans';">bc</span><span style="font-family:sans-serif;">计算器程序</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">12.34*56.78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">提交表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">700.66&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></strong></p><p><strong><span style="color:rgb(63,63,63);">scale=4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">将可用的小数位增加为</span><span style="font-family:'Liberation Sans';">4</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">12.34*56.78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">重新计算表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">700.6652&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#quit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">退出计算器</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">结合管道向<span style="font-family:'Liberation Sans';">bc&nbsp;</span><span style="font-family:sans-serif;">发送表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">多个表达式以分号分隔</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">通过</span><span style="font-family:'Liberation Sans';">echo</span><span style="font-family:sans-serif;">命令</span><span style="font-family:'Liberation Sans';">+</span><span style="font-family:sans-serif;">管道传递要计算的表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;A=12.34</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#echo&nbsp;“ A*56.789” | bc    //单表达式

700.776

# echo “scale=4; A*56.789;5/3&nbsp;|&nbsp;bc&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">多表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">700.7762</span></strong></p><p><strong><span style="color:rgb(63,63,63);">1.6666</span></strong></p><p><strong><span style="color:rgb(63,63,63);">3<span style="font-family:sans-serif;">)小数值的比较</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">基本用法</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;echo&nbsp;“<span style="font-family:sans-serif;">数值</span><span style="font-family:'Liberation Sans';">1&nbsp;&nbsp;</span><span style="font-family:sans-serif;">比较符&nbsp;&nbsp;数值</span><span style="font-family:'Liberation Sans';">2”&nbsp;&nbsp;|&nbsp;bc</span></span></strong></p><p><strong><span style="color:#3f3f3f;">-&nbsp;</span><span style="color:#ff0000;"><span style="font-family:sans-serif;">如果表达式成立,则返回的计算结果为</span><span style="font-family:'Liberation Sans';">1</span><span style="font-family:sans-serif;">,否则返回</span><span style="font-family:'Liberation Sans';">0</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">常见比较操作:</span><span style="font-family:'Liberation Sans';">&gt;</span><span style="font-family:sans-serif;">、</span><span style="font-family:'Liberation Sans';">&gt;=</span><span style="font-family:sans-serif;">、</span><span style="font-family:'Liberation Sans';">&lt;</span><span style="font-family:sans-serif;">、</span><span style="font-family:'Liberation Sans';">&lt;=</span><span style="font-family:sans-serif;">、</span><span style="font-family:'Liberation Sans';">==</span><span style="font-family:sans-serif;">、!</span><span style="font-family:'Liberation Sans';">=</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;A=12.34<span style="font-family:sans-serif;">;</span><span style="font-family:'Liberation Sans';">B=56.78</span></span></strong></p><p><strong><span style="color:#ff0000;">#&nbsp;echo&nbsp;“ A*56.789;5/3&nbsp;|&nbsp;bc&nbsp;&nbsp;&nbsp;&nbsp;//<span style="font-family:sans-serif;">多表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">700.7762</span></strong></p><p><strong><span style="color:rgb(63,63,63);">1.6666</span></strong></p><p><strong><span style="color:rgb(63,63,63);">3<span style="font-family:sans-serif;">)小数值的比较</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">基本用法</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;echo&nbsp;“<span style="font-family:sans-serif;">数值</span><span style="font-family:'Liberation Sans';">1&nbsp;&nbsp;</span><span style="font-family:sans-serif;">比较符&nbsp;&nbsp;数值</span><span style="font-family:'Liberation Sans';">2”&nbsp;&nbsp;|&nbsp;bc</span></span></strong></p><p><strong><span style="color:#3f3f3f;">-&nbsp;</span><span style="color:#ff0000;"><span style="font-family:sans-serif;">如果表达式成立,则返回的计算结果为</span><span style="font-family:'Liberation Sans';">1</span><span style="font-family:sans-serif;">,否则返回</span><span style="font-family:'Liberation Sans';">0</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">常见比较操作:</span><span style="font-family:'Liberation Sans';">&gt;</span><span style="font-family:sans-serif;">、</span><span style="font-family:'Liberation Sans';">&gt;=</span><span style="font-family:sans-serif;">、</span><span style="font-family:'Liberation Sans';">&lt;</span><span style="font-family:sans-serif;">、</span><span style="font-family:'Liberation Sans';">&lt;=</span><span style="font-family:sans-serif;">、</span><span style="font-family:'Liberation Sans';">==</span><span style="font-family:sans-serif;">、!</span><span style="font-family:'Liberation Sans';">=</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;A=12.34<span style="font-family:sans-serif;">;</span><span style="font-family:'Liberation Sans';">B=56.78</span></span></strong></p><p><strong><span style="color:#ff0000;">#&nbsp;echo&nbsp;“ A<=B”&nbsp;&nbsp;|&nbsp;&nbsp;bc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//A<span style="font-family:sans-serif;">是否小于或等于</span><span style="font-family:'Liberation Sans';">B</span></span></strong></p><p><strong><span style="color:#ff0000;">1</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#echo&nbsp;“ B”&nbsp;&nbsp;|&nbsp;&nbsp;bc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//A<span style="font-family:sans-serif;">是否小于或等于</span><span style="font-family:'Liberation Sans';">B</span></span></strong></p><p><strong><span style="color:#ff0000;">1</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#echo&nbsp;“ A > B”&nbsp;&nbsp;|&nbsp;&nbsp;bc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//A<span style="font-family:sans-serif;">是否大于或等于</span><span style="font-family:'Liberation Sans';">B</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">0</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;</span></strong></p><p><strong><span style="color:rgb(63,63,63);">二、条件测试</span></strong></p><p><strong><span style="color:rgb(63,63,63);">1.&nbsp;<span style="font-family:sans-serif;">测试操作概述</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">1<span style="font-family:sans-serif;">)</span><span style="font-family:'Liberation Sans';">shell&nbsp;</span><span style="font-family:sans-serif;">脚本的智能化</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">为命令的执行提供最直接的识别依据</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">文件或目录的读</span><span style="font-family:'Liberation Sans';">/</span><span style="font-family:sans-serif;">写等状态</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">数值的大小</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">字符串是否匹配</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">多条件组合</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">2<span style="font-family:sans-serif;">)</span><span style="font-family:'Liberation Sans';">test</span><span style="font-family:sans-serif;">测试操作</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">语法格式</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;test&nbsp;&nbsp;&nbsp;<span style="font-family:sans-serif;">选项&nbsp;&nbsp;参数</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;[&nbsp;&nbsp;<span style="font-family:sans-serif;">选项&nbsp;&nbsp;参数&nbsp;&nbsp;</span><span style="font-family:'Liberation Sans';">]</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">h</span><span style="color:rgb(63,63,63);">elp&nbsp;test&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">查阅帮助</span></strong></p><p><strong><span style="color:rgb(63,63,63);">2.&nbsp;</span><span style="color:rgb(63,63,63);">常见的测试操作</span></strong></p><p><strong><span style="color:rgb(63,63,63);">1</span><span style="color:rgb(63,63,63);">)字符串比较</span></strong></p><p><strong><span style="color:rgb(63,63,63);">[&nbsp;</span><span style="color:rgb(63,63,63);">操作符&nbsp;&nbsp;字符串</span><span style="color:rgb(63,63,63);">]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-z&nbsp;</span><span style="color:rgb(63,63,63);">字符串的值为空</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-n&nbsp;</span><span style="color:rgb(63,63,63);">字符串的值不为空(相当于!</span><span style="color:rgb(63,63,63);">-z&nbsp;</span><span style="color:rgb(63,63,63);">)</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;[&nbsp;-z&nbsp;“&nbsp;”&nbsp;]&nbsp;&amp;&amp;&nbsp;echo&nbsp;&nbsp;YES&nbsp;&nbsp;||&nbsp;echo&nbsp;&nbsp;NO</span></strong></p><p><strong><span style="color:rgb(63,63,63);">YES</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;[&nbsp;-z&nbsp;“&nbsp;”&nbsp;]&nbsp;&amp;&amp;&nbsp;echo&nbsp;&nbsp;YES&nbsp;&nbsp;||&nbsp;echo&nbsp;&nbsp;NO</span></strong></p><p><strong><span style="color:rgb(63,63,63);">NO</span></strong></p><p><strong><span style="color:rgb(63,63,63);">[&nbsp;</span><span style="color:rgb(63,63,63);">字符串</span><span style="color:rgb(63,63,63);">1&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">操作符&nbsp;&nbsp;字符串</span><span style="color:rgb(63,63,63);">2&nbsp;]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;&nbsp;==&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">两个字符串相同</span></strong></p><p><strong><span style="color:rgb(63,63,63);">!</span><span style="color:rgb(63,63,63);">=&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">两个字符串不相同</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;[ B”&nbsp;&nbsp;|&nbsp;&nbsp;bc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//A<span style="font-family:sans-serif;">是否大于或等于</span><span style="font-family:'Liberation Sans';">B</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">0</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;</span></strong></p><p><strong><span style="color:rgb(63,63,63);">二、条件测试</span></strong></p><p><strong><span style="color:rgb(63,63,63);">1.&nbsp;<span style="font-family:sans-serif;">测试操作概述</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">1<span style="font-family:sans-serif;">)</span><span style="font-family:'Liberation Sans';">shell&nbsp;</span><span style="font-family:sans-serif;">脚本的智能化</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">为命令的执行提供最直接的识别依据</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">文件或目录的读</span><span style="font-family:'Liberation Sans';">/</span><span style="font-family:sans-serif;">写等状态</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">数值的大小</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">字符串是否匹配</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">多条件组合</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">2<span style="font-family:sans-serif;">)</span><span style="font-family:'Liberation Sans';">test</span><span style="font-family:sans-serif;">测试操作</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">语法格式</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;test&nbsp;&nbsp;&nbsp;<span style="font-family:sans-serif;">选项&nbsp;&nbsp;参数</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;[&nbsp;&nbsp;<span style="font-family:sans-serif;">选项&nbsp;&nbsp;参数&nbsp;&nbsp;</span><span style="font-family:'Liberation Sans';">]</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">h</span><span style="color:rgb(63,63,63);">elp&nbsp;test&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">查阅帮助</span></strong></p><p><strong><span style="color:rgb(63,63,63);">2.&nbsp;</span><span style="color:rgb(63,63,63);">常见的测试操作</span></strong></p><p><strong><span style="color:rgb(63,63,63);">1</span><span style="color:rgb(63,63,63);">)字符串比较</span></strong></p><p><strong><span style="color:rgb(63,63,63);">[&nbsp;</span><span style="color:rgb(63,63,63);">操作符&nbsp;&nbsp;字符串</span><span style="color:rgb(63,63,63);">]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-z&nbsp;</span><span style="color:rgb(63,63,63);">字符串的值为空</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-n&nbsp;</span><span style="color:rgb(63,63,63);">字符串的值不为空(相当于!</span><span style="color:rgb(63,63,63);">-z&nbsp;</span><span style="color:rgb(63,63,63);">)</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;[&nbsp;-z&nbsp;“&nbsp;”&nbsp;]&nbsp;&amp;&amp;&nbsp;echo&nbsp;&nbsp;YES&nbsp;&nbsp;||&nbsp;echo&nbsp;&nbsp;NO</span></strong></p><p><strong><span style="color:rgb(63,63,63);">YES</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;[&nbsp;-z&nbsp;“&nbsp;”&nbsp;]&nbsp;&amp;&amp;&nbsp;echo&nbsp;&nbsp;YES&nbsp;&nbsp;||&nbsp;echo&nbsp;&nbsp;NO</span></strong></p><p><strong><span style="color:rgb(63,63,63);">NO</span></strong></p><p><strong><span style="color:rgb(63,63,63);">[&nbsp;</span><span style="color:rgb(63,63,63);">字符串</span><span style="color:rgb(63,63,63);">1&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">操作符&nbsp;&nbsp;字符串</span><span style="color:rgb(63,63,63);">2&nbsp;]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;&nbsp;==&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">两个字符串相同</span></strong></p><p><strong><span style="color:rgb(63,63,63);">!</span><span style="color:rgb(63,63,63);">=&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">两个字符串不相同</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;[ USER == “root”] && echo “超级用户”

超级用户

#[PWD!=&nbsp;“/”]&nbsp;&amp;&amp;&nbsp;pwd</span></strong></p><p><strong><span style="color:rgb(63,63,63);">/root</span></strong></p><p><strong><span style="color:rgb(63,63,63);">2</span><span style="color:rgb(63,63,63);">)整数值比较</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;[<span style="font-family:sans-serif;">整数值</span></span><span style="color:rgb(63,63,63);">1&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">操作符&nbsp;&nbsp;整数值</span><span style="color:rgb(63,63,63);">2]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/62fda76f6896a5148b3b1ac6ae3f1f26.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;</span></strong><span style="color:rgb(63,63,63);"><strong>&nbsp;</strong></span></p><p><strong><span style="color:rgb(63,63,63);">检查已登录的用户数,是否不超过<span style="font-family:'Liberation Sans';">5</span><span style="font-family:sans-serif;">个</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;&nbsp;who&nbsp;&nbsp;|&nbsp;wc&nbsp;&nbsp;-l</span></strong></p><p><strong><span style="color:rgb(63,63,63);">2</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#</span><span style="color:rgb(63,63,63);">[</span><span style="color:rgb(63,63,63);"> PWD!=&nbsp;“/”]&nbsp;&amp;&amp;&nbsp;pwd</span></strong></p><p><strong><span style="color:rgb(63,63,63);">/root</span></strong></p><p><strong><span style="color:rgb(63,63,63);">2</span><span style="color:rgb(63,63,63);">)整数值比较</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;[<span style="font-family:sans-serif;">整数值</span></span><span style="color:rgb(63,63,63);">1&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">操作符&nbsp;&nbsp;整数值</span><span style="color:rgb(63,63,63);">2]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/62fda76f6896a5148b3b1ac6ae3f1f26.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;</span></strong><span style="color:rgb(63,63,63);"><strong>&nbsp;</strong></span></p><p><strong><span style="color:rgb(63,63,63);">检查已登录的用户数,是否不超过<span style="font-family:'Liberation Sans';">5</span><span style="font-family:sans-serif;">个</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;&nbsp;who&nbsp;&nbsp;|&nbsp;wc&nbsp;&nbsp;-l</span></strong></p><p><strong><span style="color:rgb(63,63,63);">2</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#</span><span style="color:rgb(63,63,63);">[</span><span style="color:rgb(63,63,63);"> (who | wc -l)-le 5] && echo “ok”

ok

3)文件状态测试

[操作符 文件或目录]

 

 

文件状态测试

#[-d /etc/hosts]

#echo ?</span></strong></p><p><strong><span style="color:rgb(63,63,63);">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//</span><span style="color:rgb(63,63,63);">目录不存在,测试不成立</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#</span><span style="color:rgb(63,63,63);">[&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">-d&nbsp;&nbsp;/etc/vsftpd&nbsp;&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#echo ?</span></strong></p><p><strong><span style="color:rgb(63,63,63);">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//</span><span style="color:rgb(63,63,63);">目录不存在,测试不成立</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#</span><span style="color:rgb(63,63,63);">[&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">-d&nbsp;&nbsp;/etc/vsftpd&nbsp;&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#echo

1             //目录 /etc/vsftpd不存在,测试不成立

0            //目录 /etc/vsftpd存在,测试成立   

#[  -d  /etc/vsftpd   ] &&   echo  “YES”

YES

3. 组合多个条件

1)逻辑分隔操作

主要方法:

——命令1 操作符 命令2   …

——[  条件1  ]  操作符 [ 条件2 ]  …

[条件1]  &&  条件2 :只有条件1为真,才执行条件2

[条件1]   | |   [条件2]:只有条件1为假,才执行条件2

 

  

2)条件组合应用

当前用户是root,且位于/root目录下

#[ USER&nbsp;==&nbsp;“root”&nbsp;</span><span style="color:rgb(63,63,63);">]</span><span style="color:rgb(63,63,63);">&amp;&amp;</span><span style="color:rgb(63,63,63);">[&nbsp;</span><span style="color:rgb(63,63,63);"> USER&nbsp;==&nbsp;“root”&nbsp;</span><span style="color:rgb(63,63,63);">]</span><span style="color:rgb(63,63,63);">&amp;&amp;</span><span style="color:rgb(63,63,63);">[&nbsp;</span><span style="color:rgb(63,63,63);"> PWD ==  “/root” ]

#[ </span><span style="color:rgb(63,63,63);">?&nbsp;</span><span style="color:rgb(63,63,63);">-eq&nbsp;0&nbsp;</span><span style="color:rgb(63,63,63);">]</span><span style="color:rgb(63,63,63);">&amp;&amp;echo&nbsp;YES</span></strong></p><p><strong><span style="color:rgb(63,63,63);">YES</span></strong></p><p><strong><span style="color:rgb(63,63,63);">当</span><span style="color:rgb(63,63,63);">/opt/testdir&nbsp;</span><span style="color:rgb(63,63,63);">目录不存在时,创建该目录</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#</span><span style="color:rgb(63,63,63);">[</span><span style="color:rgb(63,63,63);">-d&nbsp;“/opt/testdir”&nbsp;</span><span style="color:rgb(63,63,63);">]&nbsp;&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">||&nbsp;&nbsp;mkdir&nbsp;&nbsp;&nbsp;-p&nbsp;&nbsp;&nbsp;/opt/testdir</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#ls&nbsp;&nbsp;-ld&nbsp;&nbsp;&nbsp;/opt/restdir</span></strong></p><p><strong><span style="color:rgb(63,63,63);">drwxr-xr-x&nbsp;2&nbsp;root&nbsp;root&nbsp;4096&nbsp;12-03&nbsp;18:13&nbsp;/opt/testdir/</span></strong></p><p><br></p><p><span style="color:rgb(63,63,63);"><strong>三、<span style="font-family:'Liberation Sans';">if</span></strong></span><span style="color:rgb(63,63,63);"><strong>选择结构</strong></span></p><p><strong><span style="color:rgb(63,63,63);">1.&nbsp;&nbsp;<span style="font-family:sans-serif;">单分支结构</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">1<span style="font-family:sans-serif;">)语法格式及特点</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">当<span style="font-family:'Liberation Sans';">“</span><span style="font-family:sans-serif;">条件成立</span><span style="font-family:'Liberation Sans';">”</span><span style="font-family:sans-serif;">时执行命令序列</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">否则,不执行任何操作</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/8cd9e99df704c1788de922be6a307369.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">2<span style="font-family:sans-serif;">)</span><span style="font-family:'Liberation Sans';">if</span></span><span style="color:rgb(63,63,63);">单分支的执行流程</span></strong></p><p><strong><span style="color:rgb(63,63,63);">流程示意图</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/71d2354c2c36f3161c34f5b459ea6e7c.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">3<span style="font-family:sans-serif;">)脚本应用示例</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">任务目标</span></strong></p><p><strong><span style="color:rgb(63,63,63);">—&nbsp;<span style="font-family:sans-serif;">判断挂在点目录,若不存在则创建</span></span></strong></p><p>&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/b1439040f606ac52219e49bec39c9aae.png" alt=""></p><p><strong><span style="color:rgb(63,63,63);">2.&nbsp;&nbsp;<span style="font-family:sans-serif;">双分支结构</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">1<span style="font-family:sans-serif;">)语法格式及特点</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">当<span style="font-family:'Liberation Sans';">“</span><span style="font-family:sans-serif;">条件成立</span><span style="font-family:'Liberation Sans';">”</span><span style="font-family:sans-serif;">时执行命令序列</span></span><span style="color:rgb(63,63,63);">1</span></strong></p><p><strong><span style="color:rgb(63,63,63);">否则,执行命令序列</span><span style="color:rgb(63,63,63);">2</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/0bd8b776b54b4ebef268ce4fbe3f17ca.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">2<span style="font-family:sans-serif;">)</span><span style="font-family:'Liberation Sans';">if</span></span><span style="color:rgb(63,63,63);">双分支的执行流程</span></strong></p><p><strong><span style="color:rgb(63,63,63);">流程示意图</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/3421f4bbf385c1ee3576f5ae4e3382a6.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">3<span style="font-family:sans-serif;">)脚本应用示例</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">任务目标</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">检测并判断指定的主机是否可</span></span><span style="color:rgb(63,63,63);">ping</span><span style="color:rgb(63,63,63);">通</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">目标主机的地址以位置参数提供</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;cat&nbsp;pinghost.sh</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#!/bin/bash</span></strong></p><p><strong><span style="color:rgb(63,63,63);">ping&nbsp;&nbsp;-c&nbsp;&nbsp;3 &nbsp; </span><span style="color:rgb(63,63,63);">?&nbsp;</span><span style="color:rgb(63,63,63);">-eq&nbsp;0&nbsp;</span><span style="color:rgb(63,63,63);">]</span><span style="color:rgb(63,63,63);">&amp;&amp;echo&nbsp;YES</span></strong></p><p><strong><span style="color:rgb(63,63,63);">YES</span></strong></p><p><strong><span style="color:rgb(63,63,63);">当</span><span style="color:rgb(63,63,63);">/opt/testdir&nbsp;</span><span style="color:rgb(63,63,63);">目录不存在时,创建该目录</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#</span><span style="color:rgb(63,63,63);">[</span><span style="color:rgb(63,63,63);">-d&nbsp;“/opt/testdir”&nbsp;</span><span style="color:rgb(63,63,63);">]&nbsp;&nbsp;&nbsp;</span><span style="color:rgb(63,63,63);">||&nbsp;&nbsp;mkdir&nbsp;&nbsp;&nbsp;-p&nbsp;&nbsp;&nbsp;/opt/testdir</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#ls&nbsp;&nbsp;-ld&nbsp;&nbsp;&nbsp;/opt/restdir</span></strong></p><p><strong><span style="color:rgb(63,63,63);">drwxr-xr-x&nbsp;2&nbsp;root&nbsp;root&nbsp;4096&nbsp;12-03&nbsp;18:13&nbsp;/opt/testdir/</span></strong></p><p><br></p><p><span style="color:rgb(63,63,63);"><strong>三、<span style="font-family:'Liberation Sans';">if</span></strong></span><span style="color:rgb(63,63,63);"><strong>选择结构</strong></span></p><p><strong><span style="color:rgb(63,63,63);">1.&nbsp;&nbsp;<span style="font-family:sans-serif;">单分支结构</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">1<span style="font-family:sans-serif;">)语法格式及特点</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">当<span style="font-family:'Liberation Sans';">“</span><span style="font-family:sans-serif;">条件成立</span><span style="font-family:'Liberation Sans';">”</span><span style="font-family:sans-serif;">时执行命令序列</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">否则,不执行任何操作</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/8cd9e99df704c1788de922be6a307369.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">2<span style="font-family:sans-serif;">)</span><span style="font-family:'Liberation Sans';">if</span></span><span style="color:rgb(63,63,63);">单分支的执行流程</span></strong></p><p><strong><span style="color:rgb(63,63,63);">流程示意图</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/71d2354c2c36f3161c34f5b459ea6e7c.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">3<span style="font-family:sans-serif;">)脚本应用示例</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">任务目标</span></strong></p><p><strong><span style="color:rgb(63,63,63);">—&nbsp;<span style="font-family:sans-serif;">判断挂在点目录,若不存在则创建</span></span></strong></p><p>&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/b1439040f606ac52219e49bec39c9aae.png" alt=""></p><p><strong><span style="color:rgb(63,63,63);">2.&nbsp;&nbsp;<span style="font-family:sans-serif;">双分支结构</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">1<span style="font-family:sans-serif;">)语法格式及特点</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">当<span style="font-family:'Liberation Sans';">“</span><span style="font-family:sans-serif;">条件成立</span><span style="font-family:'Liberation Sans';">”</span><span style="font-family:sans-serif;">时执行命令序列</span></span><span style="color:rgb(63,63,63);">1</span></strong></p><p><strong><span style="color:rgb(63,63,63);">否则,执行命令序列</span><span style="color:rgb(63,63,63);">2</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/0bd8b776b54b4ebef268ce4fbe3f17ca.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">2<span style="font-family:sans-serif;">)</span><span style="font-family:'Liberation Sans';">if</span></span><span style="color:rgb(63,63,63);">双分支的执行流程</span></strong></p><p><strong><span style="color:rgb(63,63,63);">流程示意图</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/3421f4bbf385c1ee3576f5ae4e3382a6.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">3<span style="font-family:sans-serif;">)脚本应用示例</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">任务目标</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">检测并判断指定的主机是否可</span></span><span style="color:rgb(63,63,63);">ping</span><span style="color:rgb(63,63,63);">通</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">目标主机的地址以位置参数提供</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;cat&nbsp;pinghost.sh</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#!/bin/bash</span></strong></p><p><strong><span style="color:rgb(63,63,63);">ping&nbsp;&nbsp;-c&nbsp;&nbsp;3 &nbsp; <script type="math/tex" id="MathJax-Element-33">? -eq 0 ]&&echo YES

YES

/opt/testdir 目录不存在时,创建该目录

#[-d “/opt/testdir” ]   ||  mkdir   -p   /opt/testdir

#ls  -ld   /opt/restdir

drwxr-xr-x 2 root root 4096 12-03 18:13 /opt/testdir/


三、if选择结构

1.  单分支结构

1)语法格式及特点

条件成立时执行命令序列

否则,不执行任何操作

 

2if单分支的执行流程

流程示意图

 

3)脚本应用示例

任务目标

— 判断挂在点目录,若不存在则创建

 

2.  双分支结构

1)语法格式及特点

条件成立时执行命令序列1

否则,执行命令序列2

 

2if双分支的执行流程

流程示意图

 

3)脚本应用示例

任务目标

检测并判断指定的主机是否可ping

目标主机的地址以位置参数提供

# cat pinghost.sh

#!/bin/bash

ping  -c  3   </script>1  &>/dev/null

if [ ?&nbsp;&nbsp;-eq&nbsp;&nbsp;0&nbsp;];then</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;&nbsp;&nbsp;echo&nbsp;“Host&nbsp;&nbsp; ?&nbsp;&nbsp;-eq&nbsp;&nbsp;0&nbsp;];then</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;&nbsp;&nbsp;echo&nbsp;“Host&nbsp;&nbsp; 1  is  up.”

else

   echo “Host  1&nbsp;&nbsp;is&nbsp;&nbsp;down.”</span></strong></p><p><strong><span style="color:rgb(63,63,63);">fi</span></strong></p><p><strong><span style="color:rgb(63,63,63);"><img src="https://i-blog.csdnimg.cn/blog_migrate/8ed7716b40a23b50bd3ef6d5f63aa469.png" alt="">&nbsp;</span></strong><span style="color:rgb(63,63,63);"><strong>&nbsp;</strong></span></p><p><strong><span style="color:rgb(63,63,63);">3.&nbsp;&nbsp;<span style="font-family:sans-serif;">多分枝结构</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">1<span style="font-family:sans-serif;">)语法格式及特点</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">相当于</span><span style="color:rgb(63,63,63);">if</span><span style="color:rgb(63,63,63);">语句嵌套</span></strong></p><p><strong><span style="color:rgb(63,63,63);">针对多个条件分别执行不同的操作</span></strong></p><p><strong><span style="color:rgb(63,63,63);"><img src="https://i-blog.csdnimg.cn/blog_migrate/5f0904631b91d9726b057bf1c66d63db.png" alt="">&nbsp;</span></strong></p><p><strong><span style="color:rgb(63,63,63);">2<span style="font-family:sans-serif;">)</span><span style="font-family:'Liberation Sans';">if</span></span><span style="color:rgb(63,63,63);">多分枝的执行流程</span></strong></p><p><strong><span style="color:rgb(63,63,63);">执行流程示意图</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/f6a6d5a0ceefc334fa1d405a7c341fe9.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">3<span style="font-family:sans-serif;">)脚本应用示例</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">任务目标</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">输入一个分数,判断成绩分挡</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;85</span><span style="color:rgb(63,63,63);">~</span><span style="color:rgb(63,63,63);">100</span><span style="color:rgb(63,63,63);">优秀、</span><span style="color:rgb(63,63,63);">70-84</span><span style="color:rgb(63,63,63);">良好、低于</span><span style="color:rgb(63,63,63);">70</span><span style="color:rgb(63,63,63);">分、不及格</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;cat&nbsp;gradediv.sh</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#<span style="font-family:sans-serif;">!</span><span style="font-family:'Liberation Sans';">/bin/bash</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">read&nbsp;&nbsp;-p&nbsp;&nbsp;“<span style="font-family:sans-serif;">请输入分数(</span><span style="font-family:'Liberation Sans';">0-100</span><span style="font-family:sans-serif;">):</span><span style="font-family:'Liberation Sans';">”&nbsp;FS</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">if[&nbsp;&nbsp; 1&nbsp;&nbsp;is&nbsp;&nbsp;down.”</span></strong></p><p><strong><span style="color:rgb(63,63,63);">fi</span></strong></p><p><strong><span style="color:rgb(63,63,63);"><img src="https://i-blog.csdnimg.cn/blog_migrate/8ed7716b40a23b50bd3ef6d5f63aa469.png" alt="">&nbsp;</span></strong><span style="color:rgb(63,63,63);"><strong>&nbsp;</strong></span></p><p><strong><span style="color:rgb(63,63,63);">3.&nbsp;&nbsp;<span style="font-family:sans-serif;">多分枝结构</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">1<span style="font-family:sans-serif;">)语法格式及特点</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">相当于</span><span style="color:rgb(63,63,63);">if</span><span style="color:rgb(63,63,63);">语句嵌套</span></strong></p><p><strong><span style="color:rgb(63,63,63);">针对多个条件分别执行不同的操作</span></strong></p><p><strong><span style="color:rgb(63,63,63);"><img src="https://i-blog.csdnimg.cn/blog_migrate/5f0904631b91d9726b057bf1c66d63db.png" alt="">&nbsp;</span></strong></p><p><strong><span style="color:rgb(63,63,63);">2<span style="font-family:sans-serif;">)</span><span style="font-family:'Liberation Sans';">if</span></span><span style="color:rgb(63,63,63);">多分枝的执行流程</span></strong></p><p><strong><span style="color:rgb(63,63,63);">执行流程示意图</span></strong></p><p><strong><span style="color:rgb(63,63,63);">&nbsp;<img src="https://i-blog.csdnimg.cn/blog_migrate/f6a6d5a0ceefc334fa1d405a7c341fe9.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);">3<span style="font-family:sans-serif;">)脚本应用示例</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">任务目标</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;<span style="font-family:sans-serif;">输入一个分数,判断成绩分挡</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">-&nbsp;85</span><span style="color:rgb(63,63,63);">~</span><span style="color:rgb(63,63,63);">100</span><span style="color:rgb(63,63,63);">优秀、</span><span style="color:rgb(63,63,63);">70-84</span><span style="color:rgb(63,63,63);">良好、低于</span><span style="color:rgb(63,63,63);">70</span><span style="color:rgb(63,63,63);">分、不及格</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#&nbsp;cat&nbsp;gradediv.sh</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#<span style="font-family:sans-serif;">!</span><span style="font-family:'Liberation Sans';">/bin/bash</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">read&nbsp;&nbsp;-p&nbsp;&nbsp;“<span style="font-family:sans-serif;">请输入分数(</span><span style="font-family:'Liberation Sans';">0-100</span><span style="font-family:sans-serif;">):</span><span style="font-family:'Liberation Sans';">”&nbsp;FS</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">if[&nbsp;&nbsp; FS  -ge  85 ] && [  FS&nbsp;&nbsp;-le &nbsp;100 ];then</span></strong></p><p><strong><span style="color:rgb(63,63,63);">echo&nbsp;“ FS&nbsp;&nbsp;-le &nbsp;100 ];then</span></strong></p><p><strong><span style="color:rgb(63,63,63);">echo&nbsp;“ FS分!优秀”

elif [FS&nbsp;&nbsp;-ge&nbsp;70&nbsp;]&nbsp;&amp;&amp;&nbsp;[&nbsp; FS&nbsp;&nbsp;-ge&nbsp;70&nbsp;]&nbsp;&amp;&amp;&nbsp;[&nbsp; FS  -le 84 ];then

echo “ FS<spanstyle="fontfamily:sansserif;"></span><spanstyle="fontfamily:LiberationSans;"></span></span></strong></p><p><strong><spanstyle="color:rgb(63,63,63);">else</span></strong></p><p><strong><spanstyle="color:rgb(63,63,63);">echo F S < s p a n s t y l e =" f o n t − f a m i l y : s a n s − s e r i f ; "> 分 , 合 格 < / s p a n >< s p a n s t y l e =" f o n t − f a m i l y : ′ L i b e r a t i o n S a n s ′ ; "> ” < / s p a n >< / s p a n >< / s t r o n g >< / p >< p >< s t r o n g >< s p a n s t y l e =" c o l o r : r g b ( 63 , 63 , 63 ) ; "> e l s e < / s p a n >< / s t r o n g >< / p >< p >< s t r o n g >< s p a n s t y l e =" c o l o r : r g b ( 63 , 63 , 63 ) ; "> e c h o “ FS分?不合格”

fi



练习:

1 执行 X=43 ; Y=21; echo [X++], [ X + + ] , [Y–] 操作的结果是多少?
43 21

2 计算根分区的磁盘使用率,百分比精确到2位小数。
[root@server0 ~]# df
文件系统          1K-块    已用    可用 已用% 挂载点
/dev/vda1      10473900 3125180 7348720   30% /
devtmpfs         927072       0  927072    0% /dev
tmpfs            942660      80  942580    1% /dev/shm
tmpfs            942660   17044  925616    2% /run

tmpfs            942660       0  942660    0% /sys/fs/cgroup

        [root@svr5 ~]# echo ‘scale=3125180*100/10473900’ | bc   
[root@svr5 ~]# 29.85

3 列出常见的整数值比较操作,并说明各自作用。
expr: 参与运算的整数值与运算符之间需要以空格分开  *需要用  \*进行转义

[] :<span> </span> &nbsp; &nbsp;乘法(*)操作无需转义,运算符两侧可以无空格。引用变量可以省略 [] :<span> </span> &nbsp; &nbsp;乘法(*)操作无需转义,运算符两侧可以无空格。引用变量可以省略 符号;计算结果替代表达式本身,可以结合echo命令输出

let : expr和[]并不能改变变量的值,而let命令可以直接对变量值做运算再保存新的值<br><span> </span><br>4 运用条件测试操作,检查当前的用户是否为root。<br><span> </span>[root@server0 ~]# [ []并不能改变变量的值,而let命令可以直接对变量值做运算再保存新的值<br><span> </span><br>4 运用条件测试操作,检查当前的用户是否为root。<br><span> </span>[root@server0 ~]# [ USER == “root” ] && echo “Y” || echo “N”
[student@server0 root] [ [ USER == “root” ] && echo “Y” || echo “N”


5 绘图描述if双分支结构的执行流程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值