if
if语句语法格式:
if condition then command1 command2 ... commandN fi写成一行(适用于终端命令提示符):
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi末尾的fi就是if倒过来拼写,后面还会类似的
if else语法格式:
if condition then command1 command2 ... commandN else command fiif else-if else 语法格式:
if condition1
then
command1
elif condition2
then
command2
else
command
fi
实例:
if else 语句经常与test命令结合使用,如下所示:
num1=$[2*3]
num2=$[1+5]
if test $[num1] -eq $[num2]
then
echo ‘两个数字相等!’
else
echo ‘两个数字不相等!’
fi
输出结果:
两个数字相等!
与其它编程语言类似,shell支持for循环
for循环一般格式为:
for var in item1 item2 …itemN
do
command1
command2
…
commandN
done
写成一行:for var in item1 item2 … itemN;do command1;command2;… done;
当变量值在列表里,for循环即执行一次所有的命令,使用变量名获取列表中的当前值。命令可为任何有效的shell命令和语句。in列表可以包含替换、字符串和文件名。
in列表是可选的,如果不用他,for循环使用命令行的位置参数。
实例:
输出结果:
顺序输出字符串中的字符:
输出结果:
while循环用于不断执行一系列命令,也用于从输入文件中读取数据:命令通常为测试条件。其格式为:
while condition
do
command
done
以下是一个基本的while循环,测试条件是:如果int小于等于5,那么条件返回真。int从0开始,每次循环处理时,int加1.运行上述脚本,返回数字1到5,然后停止。
运行脚本,输出:
使用了Bash let命令,它用于执行一个或多个表达式,变量计算中不需要加上$来表示变量,具体可查阅:Bash let命令
while循环可用于读取键盘信息。下面的例子中,输入信息被设置为变量FIM,按<Ctrl-D>
结束循环。
运行脚本,输出如下:
无限循环语法格式
while :
do
command
done
或者
while true
do
command
done
或者
for (( ; ; ))