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

shell 流程控制及函数

作者头像
happyJared
发布2019-09-19 19:14:37
3580
发布2019-09-19 19:14:37
举报
文章被收录于专栏:happyJaredhappyJared

if 条件语句

简单的 if else-if else 的条件语句示例:

代码语言:javascript
复制
#!/bin/bash
a=3;
b=9;
if [ $a -eq $b ]
then
   echo "a 等于 b"
elif [ $a -gt $b ]
then
   echo "a 大于 b"
else
   echo "a 小于 b"
fi

输出结果:

代码语言:javascript
复制
a 小于 b

不同于常见的 Java 以及 PHP 中的 if 条件语句,shell if 条件语句中不能包含空语句,也就是什么都不做的语句。

for 循环语句

输出当前列表中的数据:

代码语言:javascript
复制
for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done

产生 10 个随机数:

代码语言:javascript
复制
#!/bin/bash
for i in {0..9};
do 
   echo $i;
done

输出1到5:

通常情况下,shell 变量调用需要加 $,但是 for 的 (())中不需要,下面来看一个例子:

代码语言:javascript
复制
#!/bin/bash
for((i=1;i<=5;i++));do
    echo $i;
done;

while 语句

基本的 while 循环语句:

代码语言:javascript
复制
#!/bin/bash
int=1
while(( $int<=5 ))
do
    echo $int
    let "int++"
done

while循环可用于读取键盘信息:

代码语言:javascript
复制
echo '按下 <CTRL-D> 退出'
echo -n '输入你最喜欢的电影: '
while read FILM
do
    echo "是的!$FILM 是一个好电影"
done

输出内容:

代码语言:javascript
复制
按下 <CTRL-D> 退出
输入你最喜欢的电影: 变形金刚
是的!变形金刚 是一个好电影

无线循环:

代码语言:javascript
复制
while true
do
    command
done

不带参数没有返回值的函数

代码语言:javascript
复制
#!/bin/bash
hello(){
    echo "这是第一个 shell 函数!"
}
echo "-----函数开始执行-----"
hello
echo "-----函数执行完毕-----"

输出结果:

代码语言:javascript
复制
-----函数开始执行-----
这是第一个 shell 函数!
-----函数执行完毕-----

有返回值的函数

输入两个数字之后相加并返回结果:

代码语言:javascript
复制
#!/bin/bash
funWithReturn(){
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $?"

输出结果:

代码语言:javascript
复制
输入第一个数字: 
1
输入第二个数字: 
2
两个数字分别为 1 和 2 !
输入的两个数字之和为 3

带参数的函数

代码语言:javascript
复制
#!/bin/bash
funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

输出结果:

代码语言:javascript
复制
第一个参数为 1 !
第二个参数为 2 !
第十个参数为 10 !
第十个参数为 34 !
第十一个参数为 73 !
参数总数有 11 个!
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.09.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • if 条件语句
  • for 循环语句
  • while 语句
  • 不带参数没有返回值的函数
  • 有返回值的函数
  • 带参数的函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档