我是靠谱客的博主 苹果眼神,最近开发中收集的这篇文章主要介绍LinuxShell - 流程控制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Shell编程之流程控制

  • 条件选择( if )
  • 多条件选择( case )
  • 循环( for + while + until )
  • 双括号


<一> 条件选择语句

  • 多行书写规范
  • 单行书写规范
#!/bin/bash
a=10
if [ ! $a -eq 11 ]
then
    echo "a!=11"
fi

if [ ! $a -eq 11 ];then echo "a!=11";fi

if [ $a -eq 5 ] 
then
    echo "a=5"
elif [ $a -lt 5 ] 
then
    echo "a<5"
else
    echo "a>5"
fi
  • 单层中括号与双层中括号
#!/bin/bash
a=5
if [ $a -le 10 ]
then
    echo "PASS"
fi

#逻辑运算符需要使用双括号,布尔运算符使用单括号
if [[ $a -le 10 && $a -le 5 ]] 
then
    echo "PASS"
fi
if [ $a -le 10 -a $a -le 5 ] 
then
    echo "PASS"
fi

 

<二> 多条件选择语句

#!/bin/bash
a=10

case $a in
1) echo "a=1";;
10) echo "a=10";;
esac

<三> 循环语句

  • for循环
#!/bin/bash
b=(1 2 3 4 5 "hello")
for i in ${b[*]}
do
    echo $i
done

for((i=0;i<${#b[*]};i++))
do
    echo ${b[i]}
done
#!/bin/bash
n=10
for i in $(seq 1 $n):do
    sum=$(($i+$sum))
    #let "sum+=i"
done
echo $sum
  •  while循环
#!bin/bash
a=5
while [ $a -le 10 ]
do
    echo "PASS"
    let "a++"
done

  • until循环( 判断条件与while相反 )
#!/bin/bash
a=5
until [ $a -ge 10 ]
do
    echo "PASS"
    let "a++"
done
  • 死循环
#!/bin/bash
:<<!
while :
do
    echo "??"
done
for((;;))
do
    echo "!!"
done
!

实践:打印99乘法表

#!/bin/bash
columns=(1 2 3 4 5 6 7 8 9)
rows=(1 2 3 4 5 6 7 8 9)
for row in ${rows[*]}
do
    for column in ${columns[*]}
    do
        if [ $column -le $row ];then
            echo -n "$row*$column=`expr $row * $column` "
        fi
    done
    echo
done

<四> 双括号

注意:双括号表达式不能作为结果赋值给某变量!

#!/bin/bash

foo=1
while [ $foo -le 20 ]
do
    echo "hello"
    # foo=$(($foo+1))
    ((foo++))
done

# instead while with for
for((i=0;i<=20;i++))
do
    echo "hello"
done

# dead circle
for((;;))
do
    echo "hello"
done

 

最后

以上就是苹果眼神为你收集整理的LinuxShell - 流程控制的全部内容,希望文章能够帮你解决LinuxShell - 流程控制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部