Linux流程控制

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

跳出当前循环

相关推荐
码农君莫笑几秒前
Blazor项目中使用EF读写 SQLite 数据库
linux·数据库·sqlite·c#·.netcore·人机交互·visual studio
mubeibeinv11 分钟前
项目搭建+图片(添加+图片)
java·服务器·前端
dessler16 分钟前
Docker-如何启动docker
运维·docker·云原生·容器·eureka
zhy2956316 分钟前
【DOCKER】基于DOCKER的服务之DUFS
运维·docker·容器·dufs
无为之士21 分钟前
Linux自动备份Mysql数据库
linux·数据库·mysql
秋名山小桃子31 分钟前
Kunlun 2280服务器(ARM)Raid卡磁盘盘符漂移问题解决
运维·服务器
与君共勉1213831 分钟前
Nginx 负载均衡的实现
运维·服务器·nginx·负载均衡
岑梓铭38 分钟前
(CentOs系统虚拟机)Standalone模式下安装部署“基于Python编写”的Spark框架
linux·python·spark·centos
努力学习的小廉38 分钟前
深入了解Linux —— make和makefile自动化构建工具
linux·服务器·自动化
MZWeiei42 分钟前
Zookeeper基本命令解析
大数据·linux·运维·服务器·zookeeper