if语句
基本格式
if condition
then
command1
fi
写成一行
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
if-else语句
格式
if condition
then
command1
command2
...
commandN
else
command
fi
if else- if else
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
if实际应用
#!/bin/bash
a=10
b=20
c=100
if [[ ! $a -eq $b && $b -lt $c ]]
then
echo "a小于b并且c大于b"
fi
if ((a>b)) #可以使用(())代替,括号内可以使用<、>等符号,而且不需要加$符号,也可以加
then
echo "a>b"
else
echo "a<b"
fi
[]和(())的区别
- `[]`用于字符串或整数条件判断,可以执行大小写敏感的字符串比较、文件测试、逻辑运算、整数比较等,是一个更通用的条件判断方式。
- `(( ))`用于整数条件判断,可以执行算术运算和逻辑运算,是专门用于整数运算的语句。需要注意的是,在使用`(( ))`时,变量名前面不需要加美元符号。
for语句
基本格式
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
写成一行
for var in item1 item2 ... itemN; do command1; command2… done;
实例
#循环输出1 2 3 4 5这些值
for loop in 1 2 3 4 5
do
echo "the value is :$loop"
done
#循环输出字符串
for str this is a cat
do
echo "$str"
done
#范围循环,学过c语言的应该很熟悉
for((i=0;i<10;i++))
do
echo "i value: $i"
done
输出结果
while语句
基本格式
while condition
do
command
done
实例
判断
#!/bin/bash
a=10
b=20
i=5
while(($i>=0))
do
echo "$i"
i=$((i-1))
#let "i--" 效果是一样的
done
读取录入信息
while read FILM
do
echo "您输入的是:$FILM"
done
无限循环
while :
do
command
done
#或者
while true
do
command
done
#或者
for (( ; ; ))
until语句
until语句与while刚好相反,循环执行直到条件为true时停止
基本格式
until condition
do
command
done
实例
until [ $a -ge 10 ]
do
echo $a
a=`expr $a + 1`
#a=$((¥a + 1)) 效果一样
done
case语句
基本格式
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
#两个分号表示break
实例
输入判断
#!/bin/bash
a=$1
echo $a
case $a in
1)
echo "您选择了1"
;;
2)
echo "您选择了2"
;;
3)
echo "您选择了3"
;;
*)
echo "您 的选择不在范围内"
;;
esac
break/continue
break
跳出所有循环
continue
跳出当前循环