前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell程序设计的流程控制

shell程序设计的流程控制

作者头像
心跳包
发布2020-08-31 10:18:25
2800
发布2020-08-31 10:18:25
举报

1.if条件语句

格式:

代码语言:javascript
复制
if 条件命令串
then
    条件为真时的命令串
else
    条件为假时的命令串
fi

例子

代码语言:javascript
复制
#!/bin/bash
if[ "$1" = "" ] || [ "$2" = "" ]
then
    echo "Please enter file name"
    exit 1
fi
if [ -e $2 ]
then
    echo "The file already exists"
    until [ ! -f $2 ]
    do
        sleep 1
    done
fi
if [ ! 'mv $1 $2']
then
    echo "mv successful"
else
    echo "mv error"
fi

2.for循环

格式:

代码语言:javascript
复制
for 变量名
[in数值列表]
do
若干个命令行
done

变量名可以是用户选择的任何字符串,如果变量名是var,则在in之后给出的数值将顺序替换循环命令列表中的$var。如果省略了in,则变量var的取值将是位置参数。对变量的每一个可能的赋值都将执行do和done之间的命令列表

代码语言:javascript
复制
#!/bin/bash
counter=0
for file in *
do
    counter='expr $counter+1'
done
echo "There are $counter files in 'pwd' we need to process"

3.while和until

while格式

代码语言:javascript
复制
while
若干个命令 1
do
若干个命令 2
done

只要while的“若干个命令行1”中最后一个命令返回值状态为真,while循环就继续执行do...while之间的“若干个命令2”

until格式

代码语言:javascript
复制
until
若干个命令行1
do
若干个命令行2
done

until循环和while循环的区别:while循环在条件未真时继续执行循环,而until则在条件为假时继续执行循环

代码语言:javascript
复制
#!/bin/bash
echo -n "Please enter number:"
read n
sd=0
rev=""
on=$n
echo "$n"
while [ $n -gt 0]
do
    sd=$(($n % 10)) # get Remainder
    n=$(($n % 10)) # get next digit
    rev=$(echo $rev$sd)
done
echo "on in a reverse order $rev"

4.case条件选择

格式

代码语言:javascript
复制
exp-1)
若干个命令行 1
;;
exp-2)
若干个命令行 2
;;
...
*)
其他命令行
esac

shell通过计算字符串string的值,将其结果依次和表达式exp-1,exp-2等进行比较,直到找到一个匹配的表达式为止,如果找到了匹配项则执行它下面的命令,直到遇到一对分号;;为止。

在case表达式中,也可以使用shell的通配符(“*”“?”[]),通常用“*”,作为case命令的最后表达式,以便使在前面找不到的任何响应匹配项时执行“其他命令行”的命令。

代码语言:javascript
复制
#!/bin/bash
echo "Hit a key,then hit return."
read Keypess 
case "$Keypress" in
[A-Z] echo "Upprercase letter";;
[a-z] echo "Lowercase letter";;
[0-9] echo "Digit";;
*) echo "Punctuation", whitespace,or other";
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档