shell编程学习笔记(四)——if/if else/for/while/until/case...seac

目录

Shell 流程控制

IF

if else

 if else-if else

 for 循环

 while 语句

until 循环

 case ... esac

 无限循环

跳出循环


Shell 流程控制

IF

语法格式:

if condition 
then 
        command1 
        command2 
        ... 
        commandN 
fi

注:condition 一般为条件表达式。

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 else 的 [...] 判断语句中大于使用 -gt,小于使用 -lt。

if [ "$a" -gt "$b" ]; then
    ...
fi

shell编程学习笔记(四)——if/if else/for/while/until/case...seac_第1张图片

 

if else如果使用 ((...)) 作为判断语句,大于和小于可以直接使用 > 和 <。

if (( a > b )); then
    ...
fi

shell编程学习笔记(四)——if/if else/for/while/until/case...seac_第2张图片

 for 循环

一般格式:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

 注:

(1)当变量值在列表里,for 循环即执行一次所有命令;

(2)in 列表可以包含替换、字符串和文件名;

#!/bin/bash
for a in 1 2 3 4 5 6
do
echo "数字:$a"
done
for b in I am Tom
do
echo "字符串:$b"
done

shell编程学习笔记(四)——if/if else/for/while/until/case...seac_第3张图片

 while 语句

用于不断执行一系列命令,也用于从输入文件中读取数据。

while condition
do
    command
done
#!/bin/bash
a=2
while(($a<6))
do
echo "数字为:$a"
let "a++"
done

shell编程学习笔记(四)——if/if else/for/while/until/case...seac_第4张图片

 while循环读取键盘信息

#1bin/bash
echo "输入单词:"
while read A
do
echo "$A是一个单词"
done

 shell编程学习笔记(四)——if/if else/for/while/until/case...seac_第5张图片

until 循环

(1)until 循环执行一系列命令直至条件为 true ;

(2)until 循环与 while 循环在处理方式上刚好相反;

(3)一般 while 循环优于 until 循环。

一般格式:

until condition
do
    command
done

注:返回值为 false,则继续执行循环体内的语句,否则跳出循环。 

#!/bin/bash
a=5
until [ ! $a -lt 10 ]
do
   echo $a
   a=`expr $a + 1`
done

shell编程学习笔记(四)——if/if else/for/while/until/case...seac_第6张图片

 case ... esac

(1)case ... esac 为多选语句;

(2)switch ... case 语句类似,是一种多分支选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break;

(3)esac(就是 case 反过来)作为结束标记;

(4)可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。

一般格式:

case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
esac

注:

(1)case 工作方式如上所示,取值后面必须为单词 in;

(2)每一模式必须以右括号结束;

(3)取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 break;

(4)取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。

#1bin/bash
echo "输入1-3的数字:"
read A
case $A in
1) echo "输入的是$A";;
2) echo "输入的是$A";;
3) echo "输入的是$A";;
*) echo "输入的是$A,不是1-3";;
esac

shell编程学习笔记(四)——if/if else/for/while/until/case...seac_第7张图片

 无限循环

语法格式: 

while :
do
    command
done
while true
do
    command
done
for (( ; ; ))

跳出循环

有时候需要在未达到循环结束条件时强制跳出循环。break、continue

break 命令

跳出循环

continue命令

跳出当前循环

你可能感兴趣的:(Linux学习及相关操作,大数据,linux)