Shell流程控制语句

if else语句:

if  ((score<60))

then

     echo " 不及格"

elif ((score>=60 && score<100))

then

     echo "及格"

else

     echo "输入错误"

fi

单行写法:

if ((1==1)); then echo "成立";else echo "不成立";fi;

判断文件是否可写,输入的数据长度不为0:

#!/bin/bash

read -p "请输入文件全名:" filename

read -p "请输入数据:" data

if [ -w $filename -a -n $data ]

then 

    echo $data > $filename

    echo "文件写入成功"

else

    echo "文件写入失败"

fi

shell内置命令:test

功能与[ ]相同

整数比较

test 1 -eq 1

test 1 -eq 1 -a 1 \> 2

字符串比较

test "a" \> "b"

文件测试

test -e /root/agf.txt

 

case语句:

case  值 in

匹配模式1)

       命令1

       命令2

        ;;

匹配模式2)

       命令1

       命令2

        ;;

*)

       命令1

       命令2

        ;;

esac

#!/bin/bash

read -p "请输入一个0-7的数字" number

case $number in

1)

  echo "星期一"

  ;;

2)

  echo "星期二"

  ;;

3)

  echo "星期三"

  ;;

4)

  echo "星期四"

  ;;

5)

  echo "星期五"

  ;;

6)

  echo "星期六"

  ;;

7|0)

  echo "星期日"

  ;;

*)

  echo "输入数字无效"

  ;;

esac

while语句:

while 条件

do

    命令1

    命令2

done

#!/bin/bash

read -p "请输入一个循环的数字" number

i=0

while ((i<number))

do

   let i++

   if ((i==3))

   then 

       echo "进入下一次循环"

       continue;

   fi

   echo "hello${i}"

done

until语句:

条件为false(返回值为1)时候循环

until 条件

do

    命令1

done

 

for语句:

循环方式1

for var in item1 item2 ... itemn

do

 命令1

done

#!/bin/bash

for i in 1 3 5 6

do

 echo "${i}"

done

循环方式2

for var in {start..end}

do

 命令1

done

#!/bin/bash

for i in {1..10}

do

  echo "${i}"

done

循环方式3

for ((i=start;i<=end;i++))

do

 命令1

done

#!/bin/bash

for ((i=1;i<=10;i++))

do

  echo "${i}"

done

 

select语句:

select是无限循环,只有遇到break语句,或者按下ctrl+d组合才能结束循环

select var in menu1 menu2 ...

do

   命令

done

#!/bin/bash

echo "你的爱好是什么"

select hobby in "编程" "游戏" "篮球" 

do

  echo $hobby

  break

done

echo "你的爱好是${hobby}"

posted @ 2021-04-19 23:36  zfxd  阅读(70)  评论(0)    收藏  举报