linux之shell流程控制(if,case,for,while)

if 判断

1)基本语法
if  [ 条件判断式 ];then
  程序
fi
或者
if  [ 条件判断式 ]
  then
    程序
elif  [ 条件判断式 ]
       then
              程序
else
       程序
fi
       注意事项:
(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格
(2)if后要有空格

小案列

脚本文件:
=============================================
#!/bin.bash
echo "方式一:============================"
if [ $1 -lt $2 ];then
    echo "$1 小于 $2"
else
    echo "$1 大于等于 $2"
fi
echo "方式二:========================="
if [ $1 -gt $2 ]
    then
        echo "$1 大于 $2"
else
    echo "$1 小于等于 $2"
fi
echo "加入elif分支==================="
if [ $1 -gt $2 ];then
    echo "$1 大于 $2"
elif [ $1 -eq $2 ];then
    echo "两个数相等"
else
    echo "$1 小于 $2"
fi

===========================================================

执行脚本:
[future@future ~]$ sh if.sh 8 8
方式一:============================
8 大于等于 8
方式二:=========================
8 小于等于 8
加入elif分支===================
两个数相等

case分支控制

1)基本语法
case  $变量名 in
  "值1")
    如果变量的值等于值1,则执行程序1
    ;;
  "值2")
    如果变量的值等于值2,则执行程序2
    ;;
  …省略其他分支…
  *)
    如果变量的值都不是以上的值,则执行此程序
    ;;
esac
注意事项:
(1)case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
(2)双分号“;;”表示命令序列结束,相当于java中的break。
(3)最后的“*)”表示默认模式,相当于java中的default。

小案列

脚本程序:
==================================================
#!/bin/bash
case $1 in
"wukong")
    echo "曾经有一份真挚的爱情摆在我面前。。。。。。"
;;
"bajie")
    echo "春光灿烂猪八戒。。。。。。。。"
;;
"wujin")
    echo " 流沙河底白骨枯。。。。。。。"
;;
*)
    echo "唐长老不懂爱。。。。。。。。"
;;

esac
=====================================================

[future@future ~]$ sh case.sh  wukong
曾经有一份真挚的爱情摆在我面前。。。。。。

for循环

for (( 初始值;循环控制条件;变量变化 ))
  do
    程序
  done
++++++++++++++++++++++++++++++++++++++++++++

for 变量 in 值1 值2 值3…
  do
    程序
  done

小案列

脚本
==========================================================
#!/bin/bash
for((i=1;i<100;i++))
do
    echo $i
done
=============================================================
[future@future ~]$ sh for.sh
1
2
3
。。。。。

forin循环输出

脚本
==========================================================
#!/bin/bash
echo "==============使用$ @ 获取值"
for item in $@
do
    echo $item
done
echo "==================$ * ====="
for i in $*
do
    echo $i
done

=======================================================
[future@future ~]$ sh forin.sh hello a hh dd f
==============使用$ @ 获取值
hello
a
hh
dd
f
==================$ * =====
hello
a
hh
dd
f


为$@ $* 加上引号出现如下
========================================
#!/bin/bash
echo "==============使用$ @ 获取值"
for item in "$@"
do
    echo $item
done
echo "==================$ * ====="
for i in "$*"
do
    echo $i
done
=======================================
[future@future ~]$ sh forin.sh a b c d
==============使用$ @ 获取值
a
b
c
d
==================$ * =====
a b c d
[future@future ~]$

while循环

while [ 条件判断式 ]
  do
    程序
  done

小案列

脚本
======================================
#!/bin/bash
n=0
while [ $n -lt 10 ]
do
    echo "$n"
    n=$[$n+1]
done
======================================
[future@future ~]$ sh while.sh
0
1
2
3
。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值