这篇文章将为大家详细讲解有关壳的流程控制介绍,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):
& lt; PHP ? if (收取($ _GET [“q"])), { ,搜索(q); } else { ,//不做任何事情 }
在sh/bash里可不能这么写,如果其他分支没有语句执行,就不要写这个。
<强>如果其他
强>
<强>如果强>
如果语句语法格式:
if 条件 然后 ,command1 ,command2 ,…… ,commandN fi
写成一行(适用于终端命令提示符):
if [,美元(ps -ef  |, grep -c “ssh"), -gt 1,];, then echo “true";, fi
末尾的fi就是如果倒过来拼写,后面还会遇到类似的。
<强>如果其他强>
如果其他语法格式:
if 条件 然后 ,command1 ,command2 ,…… ,commandN 其他的 ,命令 fi
<强>如果其他else if 强>
如果其他else if语法格式:
if condition1 然后 ,command1 elif condition2 then ,command2 其他的 ,commandN fi
以下实例判断两个变量是否相等:
=10 b=20 if [, a 美元;==,b 美元;】 然后 ,echo “a 等于,b" elif [,美元a -gt  b 美元;】 然后 ,echo “a 大于,b" elif [,美元a -lt  b 美元;】 然后 ,echo “a 小于,b" 其他的 ,echo “没有符合的条件, fi
输出结果:
小于b
引用>如果其他语句经常与测试命令结合使用,如下所示:
num1=$ (2 * 3) num2=$ [1 + 5] if test 美元[num1], -eq [num2]美元 然后 ,echo & # 39;两个数字相等! & # 39; 其他的 ,echo & # 39;两个数字不相等! & # 39; fi输出结果:
两个数字相等!
引用><强>的循环强>
与其他编程语言类似,壳牌支持,循环。
循环一般格式为:
for var 拷贝item1 item2 ……itemN 做 ,command1 ,command2 ,…… ,commandN 做写成一行:
for var 拷贝item1 item2 ……, itemN;, do command1;, command2…,做;当变量值在列表里,为循环即执行一次所有命令,使用变量名获取列表中的当前取值。命令可为任何有效的壳命令和语句在列表可以包含替换,字符串和文件名。
在列表是可选的,如果不用它,对循环使用命令行的位置参数。
例如,顺序输出当前列表中的数字:
for loop 拷贝1,2,3,4,5 做 ,echo “;从而,value 是:,loop"美元; 做输出结果:
的值是:1
引用>
的值是:2
的值是:3
的值是:4
的值是:5顺序输出字符串中的字符:
for str 拷贝& # 39;却;能够is a 字符串# 39; 做 echo str美元 做输出结果:
这是一个字符串
引用><>强而语句
强>而循环用于不断执行一系列命令,也用于从输入文件中读取数据,命令通常为测试条件。其格式为:
while 条件 做 ,命令以完成下是一个基本的同时循环,测试条件是:如果int小于等于5,那么条件返回真相关性从0开始,每次循环处理时,int加1。运行上述脚本,返回数字1到5,然后终止。
# !/bin/bash int=1 而((,int<美元;=5,)) 做 echo $ int int, let “+ +”; 做运行脚本,输出:
1
引用>
2
3
4 5
以上实例使用了Bash让命令,它用于执行一个或多个表达式,变量计算中不需要加上美元来表示变量
而循环可用于读取键盘信息。下面的例子中,输入信息被设置为变量电影,按& lt; Ctrl-D>结束循环。
echo & # 39;按下,& lt; Ctrl-D>,退出& # 39; echo -n & # 39;输入你最喜欢的网站名:,& # 39; while read 电影 做 ,echo “是的! FILM 美元;是一个好网站, 完成了壳的流程控制介绍