then
command1
elif condition2
then
command2
else
commandN
fi
写成一行(适用于终端命令提示符):
if [ $(ps -ef | grep -c “ssh”) -gt 1 ]; then echo “true”; fi
[](()2.举例
#!/bin/bash
a=10
b=20
if [ $a -eq $b ]
then
echo “a 等于 b”
elif [ $a -lt $b ]
then
echo “a 小于 b”
else
echo " a 大于 b"
fi
输出
[root@hadoop-node01 ~]# . s 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 8.sh
a 小于 b
注意
[ condition ] (注意condition前后要有空格)
[](()二、case语句
Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
case 值 in
模式1)
command1
command2
…
commandN
;;
模式2)
command1
command2
…
commandN
;;
esac
举例
#!/bin/bash
case $1 in
start)
echo “开始执行了…”
;;
stop)
echo “执行完成…”
;;
*)
echo “其他操作”
esac
输出:
[root@hadoop-node01 ~]# vim s9.sh
[root@hadoop-node01 ~]# . s9.sh
其他操作
[root@hadoop-node01 ~]# . s9.sh start
开始执行了…
[root@hadoop-node01 ~]# . s9.sh stop
执行完成…
取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;
[](()三、循环语句
[](()1.for循环
for循环一般格式为
for var in item1 item2 … itemN
do
command1
command2
…
commandN
done
写成一行
for var in item1 item2 … itemN; do command1; command2… done;
举例
#!/bin/bash
for i in 1,2,3,4
do
echo $i
done
echo “------1------”
for i in {1…5}
do
echo $i
done
echo “------2----”
for a in {1…5} ; do echo $a; done;
echo “-----3------”
for((i=0;i<10;i++))
do
echo $i
done
echo “-----4-----”
for((i=0;i<5;i++)); do echo $i ;done;
输出:
[root@hadoop-node01 ~]# . s10.sh
1,2,3,4
------1------
1
2
3
4
5
------2----
1
2
3
4
5
-----3------
0
1
2
3
4