本节主要内容
- while循环控制结构
- if条件判断
-
until循环控制结构
1. while循环控制结构
本节例子来源:http://blog.chinaunix.net/uid-25880122-id-2901409.html
语法格式:
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> expression <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">do</span> <span class="hljs-command" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">command</span></span> <span class="hljs-command" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">command</span></span> done</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>
(1)计数器格式
适用于循环次数已知或固定时
<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># vim whileLoop.sh</span> .<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#!/bin/bash</span> i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span>((<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$i</span><<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>)) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">do</span> echo <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$i</span> let i++ done root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># chmod a+x whileLoop.sh </span> root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># ./whileLoop.sh </span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span> </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li></ul>
(2)标志符结束while循环
<code class="hljs bash has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">root@sparkslave02:~/ShellLearning/Chapter13<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># vim flagWhileLoop.sh</span> <span class="hljs-shebang" style="color: rgb(0, 102, 102); box-sizing: border-box;">#!/bin/bash</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">echo</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Please input the num (1~~10): "</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#接受用户输入</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">read</span> num <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> [[ <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$num</span> != <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span> ]] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">do</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#if语句,后面详细介绍,这里判断是否小于4</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$num</span> <span class="hljs-operator" style="box-sizing: border-box;">-lt</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span> ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">echo</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Too small ,Try again.."</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">read</span> num <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#判断是否大于4</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">elif</span> [ <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$num</span> <span class="hljs-operator" style="box-sizing: border-box;">-gt</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span> ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">echo</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Too big ,Try again.. "</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">read</span> num <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">exit</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">fi</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">done</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">echo</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Yes ,you are right !!"</span> root@sparkslave02:~/ShellLearning/Chapter13<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># chmod a+x flagWhileLoop.sh root@sparkslave02:~/ShellLearning/Chapter13# ./flagWhileLoop.sh </span> Please input the num (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>~~<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">10</span>): <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span> Yes ,you are right !! </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li></ul>
## 2. if条件判断##
参考:http://blog.chinaunix.net/uid-20735106-id-3434959.html
shell 脚本中的if条件判断功能十分强大,但使用也异常复杂,其语法格式:
<code class="hljs bash has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> 条件 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> Command <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span> Command <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#if条件判断的结束,用反拼表示</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">fi</span> </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li></ul>
最常用的判断为:判断字符串、判断数字、判断文件及逻辑判断等
(1)判断字符串
<code class="hljs lua has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ str1=str2 ];<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> fi <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">----当两个字符串相同时返回真</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ str1!=str2 ];<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> fi <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">----当两个字符串不相等时返回真</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3.</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ -n str1 ];<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> fi <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">----当字符串的长度大于0时返回真 (判断变量是否有值)</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4.</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ -z str1 ];<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> fi <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">----当字符串的长度为0时返回真</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>
<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># vim if01.sh</span> str1=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"hello"</span> str2=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"hell"</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#判断两字符串是否相等</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ str1=str2 ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"equal"</span> fi <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#判断两字符串是否不等</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ str1!=str2 ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"not equal"</span> fi <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#判断字符串长度是否大于0</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ -n str1 ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"the length of str1 is not zero"</span> fi <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#判断字符串长度是否等于0</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ -z str1 ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"the length of str1 is not zero, it can't be executed"</span> fi root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># ./if01.sh </span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> equal the length of str1 is <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> zero </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li></ul>
(2)判断数字
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int1</span> -eq <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int2</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--相等</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int1</span> -ne <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int2</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--不相等</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3.</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int1</span> -gt <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int2</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--大于</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4.</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int1</span> -ge <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int2</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--大于等于</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int1</span> -lt <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int2</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--小于</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6.</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int1</span> -le <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int2</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--小于等于</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li></ul>
使用示例:
<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># vim if02.sh</span> i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> j=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$i</span> -lt <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$j</span> ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"i is less than j"</span> fi <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$j</span> -gt <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$i</span> ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"j is great than i"</span> fi root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># chmod a+x if02.sh </span> root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># ./if02.sh </span> i is less than j j is great than i </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li></ul>
(3)判断文件
文件判断常用命令如下:
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.</span> -r <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">file</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--用户可读为真</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.</span> -w <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">file</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--用户可写为真</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3.</span> -x <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">file</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--用户可执行为真</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4.</span> -f <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">file</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--文件存在且为正规文件为真</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.</span> -d <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">file</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--如果是存在目录为真</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6.</span> -c <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">file</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--文件存在且为字符设备文件</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7.</span> -b <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">file</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--文件存在且为块设备文件</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8.</span> -s <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">file</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--文件大小为非0为真,可以判断文件是否为空</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9.</span> -e <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">file</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--如果文件存在为真</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul>
使用示例:
<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># vim if03.sh</span> root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># chmod a+x if03.sh </span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#判断文件是否存在</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ -f if03.sh ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"if03.sh exists!!"</span> fi <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#判断目录是否存在</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ -d ../<span class="hljs-constant" style="box-sizing: border-box;">Chapter13</span> ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"directory Chapter13 exists!!"</span> fi root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># ./if03.sh </span> if03.sh exists!! directory <span class="hljs-constant" style="box-sizing: border-box;">Chapter13</span> exists!! </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li></ul>
(4)逻辑判断
逻辑判断主要有下面三个命令
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.</span> -<span class="hljs-operator" style="box-sizing: border-box;">a</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--与</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.</span> -o <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--或</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3.</span> ! <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">--非</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>
使用示例:
<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># vim if04.sh</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#判断if04.sh文件与目录Chapter13是否同时存在,同时存在则为真</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ -f if04.sh -a -d ../<span class="hljs-constant" style="box-sizing: border-box;">Chapter13</span> ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"file if04.sh and directory Chapter13 both exists!!!"</span> fi root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># chmod a+x if04.sh </span> root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># ./if04.sh </span> file if04.sh <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> directory <span class="hljs-constant" style="box-sizing: border-box;">Chapter13</span> both exists!!! </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li></ul>
(5)if [] then else fi的用法
前面给出的例子都是if [] then fi的形式,这里再给出if [] then else fi的用法
<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># vim if05.sh</span> i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$i</span> -lt <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span> ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"i is less than 6"</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"i is great than or equal 6"</span> fi root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># chmod a+x if05.sh </span> root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># ./if05.sh </span> i is great than <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">or</span> equal <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span> </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li></ul>
(6)if [] then elif then else fi的用法
多种判断,看示例代码就能明白:
<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># cp if05.sh if06.sh</span> root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># vim if06.sh</span> i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$i</span> -le <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span> ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"i is less than 6"</span> elif [ <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$i</span> -eq <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7</span> ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"i equal 7"</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"i is great than 7"</span> fi root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># ./if06.sh </span> i equal <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7</span> </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li></ul>
## 3. until循环控制结构##
语法格式:
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">until</span> condition <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">do</span> <span class="hljs-command" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">command</span></span> done</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>
使用示例:
<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># vim until01.sh</span> i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">until</span> [ <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$i</span> -gt <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> ] <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">do</span> let i+=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"i=$i"</span> done root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># chmod a+x until01.sh </span> root<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@sparkslave02</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:~/ShellLearning/Chapter13</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># ./until01.sh </span> i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li></ul>
转载: http://blog.csdn.net/lovehuangjiaju/article/details/48917587