一、数值运算
1. 整数运算
1)基本运算类别
四则运算
+ - * /
* 取余数运算
- 求模 : num1 % num2
2) expr 运算工具
计算指定的表达式,并输出结果
- 格式: expr 整数1 运算符 整数2 。。。
- 乘法操作应采用\*转义,避免被作为shell通配符
3)[ ] </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';"> [ ] </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';"> [ ] 或 (()) </span><span style="font-family:sans-serif;">表达式</span></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';"> (()) </span><span style="font-family:sans-serif;">表达式</span></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';"> [ 整数1 运算符 整数2 … …]
- 乘法操作*无需转义,运算符两侧可以无空格
- 引用变量可省略</span><span style="font-family:sans-serif;">符号</span></span></strong></p><p><strong><span style="color:#3f3f3f;">- </span><span style="color:#ff0000;"><span style="font-family:sans-serif;">计算结果替换表达式本身,可结合</span><span style="font-family:'Liberation Sans';">echo </span><span style="font-family:sans-serif;">命令输出</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);"># X=43</span></strong></p><p><strong><span style="color:rgb(63,63,63);"># echo </span><span style="font-family:sans-serif;">符号</span></span></strong></p><p><strong><span style="color:#3f3f3f;">- </span><span style="color:#ff0000;"><span style="font-family:sans-serif;">计算结果替换表达式本身,可结合</span><span style="font-family:'Liberation Sans';">echo </span><span style="font-family:sans-serif;">命令输出</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);"># X=43</span></strong></p><p><strong><span style="color:rgb(63,63,63);"># echo <script type="math/tex" id="MathJax-Element-21">符号
- 计算结果替换表达式本身,可结合echo 命令输出
# X=43
# echo </script>[X+21]
# echo ((x−21)), ( ( x − 21 ) ) , ((x*21))
4)变量的自增/减等操作
使用[ ]</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);">- <span style="font-family:sans-serif;">结合</span><span style="font-family:'Liberation Sans';">echo </span><span style="font-family:sans-serif;">命令查看结果</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);"># i=43</span></strong></p><p><strong><span style="color:rgb(63,63,63);"># echo [ ]</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);">- <span style="font-family:sans-serif;">结合</span><span style="font-family:'Liberation Sans';">echo </span><span style="font-family:sans-serif;">命令查看结果</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);"># i=43</span></strong></p><p><strong><span style="color:rgb(63,63,63);"># echo [i+=2]
# echo [i-=8]</span></strong></p><p><strong><span style="color:rgb(63,63,63);"># let i++ ; echo [i-=8]</span></strong></p><p><strong><span style="color:rgb(63,63,63);"># let i++ ; echo i
# let I-=7;echo i</span></strong></p><p><strong><span style="color:rgb(63,63,63);"> <img src="https://i-blog.csdnimg.cn/blog_migrate/88911ea2d891873f2b1569edb6a8116b.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);"> </span></strong><span style="color:rgb(63,63,63);"><strong> </strong></span></p><p><strong><span style="color:rgb(63,63,63);">2. <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);">bash <span style="font-family:sans-serif;">内建机制仅支持整数值运算</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">- expr <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);"> <img src="https://i-blog.csdnimg.cn/blog_migrate/88911ea2d891873f2b1569edb6a8116b.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);"> </span></strong><span style="color:rgb(63,63,63);"><strong> </strong></span></p><p><strong><span style="color:rgb(63,63,63);">2. <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);">bash <span style="font-family:sans-serif;">内建机制仅支持整数值运算</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">- expr <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) <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);">- <span style="font-family:sans-serif;">支持高精度的数值运算</span></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';">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;">- </span><span style="color:#ff0000;"><span style="font-family:sans-serif;">设置 </span><span style="font-family:'Liberation Sans';">scale=n </span><span style="font-family:sans-serif;">可约束小数位</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);"># bc //<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 //<span style="font-family:sans-serif;">提交表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">700.66 </span></strong></p><p><strong><span style="color:rgb(63,63,63);">scale=4 //<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 //<span style="font-family:sans-serif;">重新计算表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">700.6652 </span></strong></p><p><strong><span style="color:rgb(63,63,63);">#quit //<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 </span><span style="font-family:sans-serif;">发送表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">- <span style="font-family:sans-serif;">多个表达式以分号分隔</span></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';">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);"># A=12.34</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#echo “ [3.14*2]</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';">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);">- <span style="font-family:sans-serif;">支持高精度的数值运算</span></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';">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;">- </span><span style="color:#ff0000;"><span style="font-family:sans-serif;">设置 </span><span style="font-family:'Liberation Sans';">scale=n </span><span style="font-family:sans-serif;">可约束小数位</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);"># bc //<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 //<span style="font-family:sans-serif;">提交表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">700.66 </span></strong></p><p><strong><span style="color:rgb(63,63,63);">scale=4 //<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 //<span style="font-family:sans-serif;">重新计算表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">700.6652 </span></strong></p><p><strong><span style="color:rgb(63,63,63);">#quit //<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 </span><span style="font-family:sans-serif;">发送表达式</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">- <span style="font-family:sans-serif;">多个表达式以分号分隔</span></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';">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);"># A=12.34</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#echo “ A*56.789” | bc //单表达式
700.776
# echo “scale=4; A*56.789;5/3 | bc //<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);">- echo “<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';">2” | bc</span></span></strong></p><p><strong><span style="color:#3f3f3f;">- </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);">- <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 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 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);"># 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;"># echo “ A*56.789;5/3 | bc //<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);">- echo “<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';">2” | bc</span></span></strong></p><p><strong><span style="color:#3f3f3f;">- </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);">- <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 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 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);"># 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;"># echo “ A<=B” | bc //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 “ B” | bc //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 “ A > B” | bc //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);"> </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. <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 </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);">- <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 style="font-family:sans-serif;">数值的大小</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">- <span style="font-family:sans-serif;">字符串是否匹配</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">- <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);">- test <span style="font-family:sans-serif;">选项 参数</span></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';">]</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">h</span><span style="color:rgb(63,63,63);">elp test </span><span style="color:rgb(63,63,63);">查阅帮助</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);">1</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);">]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-z </span><span style="color:rgb(63,63,63);">字符串的值为空</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-n </span><span style="color:rgb(63,63,63);">字符串的值不为空(相当于!</span><span style="color:rgb(63,63,63);">-z </span><span style="color:rgb(63,63,63);">)</span></strong></p><p><strong><span style="color:rgb(63,63,63);"># [ -z “ ” ] && echo YES || echo 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);"># [ -z “ ” ] && echo YES || echo 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);">[ </span><span style="color:rgb(63,63,63);">字符串</span><span style="color:rgb(63,63,63);">1 </span><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);"> == </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);">两个字符串不相同</span></strong></p><p><strong><span style="color:rgb(63,63,63);"># [ B” | bc //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);"> </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. <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 </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);">- <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 style="font-family:sans-serif;">数值的大小</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">- <span style="font-family:sans-serif;">字符串是否匹配</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">- <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);">- test <span style="font-family:sans-serif;">选项 参数</span></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';">]</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">h</span><span style="color:rgb(63,63,63);">elp test </span><span style="color:rgb(63,63,63);">查阅帮助</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);">1</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);">]</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-z </span><span style="color:rgb(63,63,63);">字符串的值为空</span></strong></p><p><strong><span style="color:rgb(63,63,63);">-n </span><span style="color:rgb(63,63,63);">字符串的值不为空(相当于!</span><span style="color:rgb(63,63,63);">-z </span><span style="color:rgb(63,63,63);">)</span></strong></p><p><strong><span style="color:rgb(63,63,63);"># [ -z “ ” ] && echo YES || echo 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);"># [ -z “ ” ] && echo YES || echo 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);">[ </span><span style="color:rgb(63,63,63);">字符串</span><span style="color:rgb(63,63,63);">1 </span><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);"> == </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);">两个字符串不相同</span></strong></p><p><strong><span style="color:rgb(63,63,63);"># [ USER == “root”] && echo “超级用户”
超级用户
#[PWD!= “/”] && 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);"> [<span style="font-family:sans-serif;">整数值</span></span><span style="color:rgb(63,63,63);">1 </span><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);"> <img src="https://i-blog.csdnimg.cn/blog_migrate/62fda76f6896a5148b3b1ac6ae3f1f26.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);"> </span></strong><span style="color:rgb(63,63,63);"><strong> </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);"># who | wc -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!= “/”] && 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);"> [<span style="font-family:sans-serif;">整数值</span></span><span style="color:rgb(63,63,63);">1 </span><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);"> <img src="https://i-blog.csdnimg.cn/blog_migrate/62fda76f6896a5148b3b1ac6ae3f1f26.png" alt=""></span></strong></p><p><strong><span style="color:rgb(63,63,63);"> </span></strong><span style="color:rgb(63,63,63);"><strong> </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);"># who | wc -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 //</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);">#</span><span style="color:rgb(63,63,63);">[ </span><span style="color:rgb(63,63,63);">-d /etc/vsftpd </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 //</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);">#</span><span style="color:rgb(63,63,63);">[ </span><span style="color:rgb(63,63,63);">-d /etc/vsftpd </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 == “root” </span><span style="color:rgb(63,63,63);">]</span><span style="color:rgb(63,63,63);">&&</span><span style="color:rgb(63,63,63);">[ </span><span style="color:rgb(63,63,63);"> USER == “root” </span><span style="color:rgb(63,63,63);">]</span><span style="color:rgb(63,63,63);">&&</span><span style="color:rgb(63,63,63);">[ </span><span style="color:rgb(63,63,63);"> PWD == “/root” ]
#[ </span><span style="color:rgb(63,63,63);">? </span><span style="color:rgb(63,63,63);">-eq 0 </span><span style="color:rgb(63,63,63);">]</span><span style="color:rgb(63,63,63);">&&echo 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 </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 “/opt/testdir” </span><span style="color:rgb(63,63,63);">] </span><span style="color:rgb(63,63,63);">|| mkdir -p /opt/testdir</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#ls -ld /opt/restdir</span></strong></p><p><strong><span style="color:rgb(63,63,63);">drwxr-xr-x 2 root root 4096 12-03 18:13 /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. <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);"> <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);"> <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);">— <span style="font-family:sans-serif;">判断挂在点目录,若不存在则创建</span></span></strong></p><p> <img src="https://i-blog.csdnimg.cn/blog_migrate/b1439040f606ac52219e49bec39c9aae.png" alt=""></p><p><strong><span style="color:rgb(63,63,63);">2. <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);"> <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);"> <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);">- <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);">- <span style="font-family:sans-serif;">目标主机的地址以位置参数提供</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);"># cat 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 -c 3 </span><span style="color:rgb(63,63,63);">? </span><span style="color:rgb(63,63,63);">-eq 0 </span><span style="color:rgb(63,63,63);">]</span><span style="color:rgb(63,63,63);">&&echo 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 </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 “/opt/testdir” </span><span style="color:rgb(63,63,63);">] </span><span style="color:rgb(63,63,63);">|| mkdir -p /opt/testdir</span></strong></p><p><strong><span style="color:rgb(63,63,63);">#ls -ld /opt/restdir</span></strong></p><p><strong><span style="color:rgb(63,63,63);">drwxr-xr-x 2 root root 4096 12-03 18:13 /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. <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);"> <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);"> <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);">— <span style="font-family:sans-serif;">判断挂在点目录,若不存在则创建</span></span></strong></p><p> <img src="https://i-blog.csdnimg.cn/blog_migrate/b1439040f606ac52219e49bec39c9aae.png" alt=""></p><p><strong><span style="color:rgb(63,63,63);">2. <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);"> <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);"> <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);">- <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);">- <span style="font-family:sans-serif;">目标主机的地址以位置参数提供</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);"># cat 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 -c 3 <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)语法格式及特点
当“条件成立”时执行命令序列
否则,不执行任何操作
2)if单分支的执行流程
流程示意图
3)脚本应用示例
任务目标
— 判断挂在点目录,若不存在则创建
2. 双分支结构
1)语法格式及特点
当“条件成立”时执行命令序列1
否则,执行命令序列2
2)if双分支的执行流程
流程示意图
3)脚本应用示例
任务目标
- 检测并判断指定的主机是否可ping通
- 目标主机的地址以位置参数提供
# cat pinghost.sh
#!/bin/bash
ping -c 3 </script>1 &>/dev/null
if [ ? -eq 0 ];then</span></strong></p><p><strong><span style="color:rgb(63,63,63);"> echo “Host ? -eq 0 ];then</span></strong></p><p><strong><span style="color:rgb(63,63,63);"> echo “Host 1 is up.”
else
echo “Host 1 is 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=""> </span></strong><span style="color:rgb(63,63,63);"><strong> </strong></span></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);">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=""> </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);"> <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);">- <span style="font-family:sans-serif;">输入一个分数,判断成绩分挡</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">- 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);"># cat 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 -p “<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';">” FS</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">if[ 1 is 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=""> </span></strong><span style="color:rgb(63,63,63);"><strong> </strong></span></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);">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=""> </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);"> <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);">- <span style="font-family:sans-serif;">输入一个分数,判断成绩分挡</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">- 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);"># cat 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 -p “<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';">” FS</span></span></strong></p><p><strong><span style="color:rgb(63,63,63);">if[ FS -ge 85 ] && [ FS -le 100 ];then</span></strong></p><p><strong><span style="color:rgb(63,63,63);">echo “ FS -le 100 ];then</span></strong></p><p><strong><span style="color:rgb(63,63,63);">echo “ FS分!优秀”
elif [FS -ge 70 ] && [ FS -ge 70 ] && [ FS -le 84 ];then
echo “ FS<spanstyle="font−family:sans−serif;">分,合格</span><spanstyle="font−family:′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
expr: 参与运算的整数值与运算符之间需要以空格分开 *需要用 \*进行转义
[] :<span> </span> 乘法(*)操作无需转义,运算符两侧可以无空格。引用变量可以省略 [] :<span> </span> 乘法(*)操作无需转义,运算符两侧可以无空格。引用变量可以省略 符号;计算结果替代表达式本身,可以结合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双分支结构的执行流程。