shell 入门基础(二)

接上一章
3)while语句
格式

while condition
do
    command
done

具体使用实例

int=1
while(( $int<=5 ))
do
    echo $int
    let "int++"
done

无限循环:

while :
do
    command
done

或者

while true
do
    command
done

下面也可以

for (( ; ; ))

4)until循环
执行命令一直到条件为true才停止
格式

until [ ! $a -lt 10 ]
do
   echo $a
   a=`expr $a + 1`
done

5)case…esac语句
多选择语句,与其他语言中switch…case相似,多选择分支结构语句

格式

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

实例

echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
    1)  echo '你选择了 1'
    ;;
    2)  echo '你选择了 2'
    ;;
    3)  echo '你选择了 3'
    ;;
    4)  echo '你选择了 4'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'       //无匹配模式的时候,使用*捕获,类似于java中的default分支
    ;;
esac      //    跟switch case语句一样支持整数类型



site="runoob"

case "$site" in
   "runoob") echo "菜鸟教程"
   ;;
   "google") echo "Google 搜索"
   ;;
   "taobao") echo "淘宝网"
   ;;
esac           //  也可以支持字符串类型,这和其他语言是不一样的

shell里取值后面必须为单词in,每一个都必须以有括号结束,取值可以为变量也可以为常数,结束标志是;;

6)跳出循环

1)跟其他语言一样,break跳出所有循环
2)continue也一样,仅仅跳出当前循环

注意:
shell中的for循环也可以使用其他语言中的格式
比如:

for((i=1;i<=5;i++));do
    echo "这是第 $i 次调用";
done;

但是运行的时候得用 bash代替sh

12.shell函数

1)定义格式

[ function ] funname [()]

{

    action;

    [return int;]

}                                                                //可以带function定义,也可以直接fun定义,不带任何参数

2)带有return函数定义

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}

3)函数参数
在函数内部,使用$n来获取参数的值,比如$1为第一个参数

  • $# 参数个数
  • $* 所有参数

注意:当n大于等于10 必须用${n}来获取参数。

今日编程记录:

:<<EOF

demo(){
   echo 第一个函数
}

echo 函数开始
demo
echo  函数结束
demo
echo 两个数相加的结果为 $?

demo1(){
name=9
return $name
}
demo1
echo $?                                                              //使用$?来接收参数
echo $?                                                              //结果为0 只能接收一次,而且中途不能有其他语句,有其他语句也会显示为0

demo(){
echo 进行加法运算
echo  请输入第一个数字:
read  name1
echo  请输入第二个数字:
read  name2
echo  两个数字为$num1和$num2
return $(($num1+$num2))                                // 返回参数时必须用双括号
}

demo
echo 两个数相加的结果为 $?
demo3(){
echo 第一个参数为:$1
echo 第二个参数为:$2
echo 第三个参数为:$3
echo 第四个参数为:$4
echo 第十个参数为:${10}                               //大于10的必须注意使用花括号
echo 参数总数为:$#
echo 所有参数为 $*                           

}
demo3 1 2 3 4 5 6 7 8 9 10


demo1(){
name=9
return $name
}
demo1
echo  xue   
echo $?                                  //   结果为0

 i=1
while(( $i<=5 ))                            //这里也是需要双括号
do
  echo $i
  let "i++"                                    // 这里也必须使用let 目前还没搞清楚,后续再了解
done



echo please enter 1-4:
echo 你输入的数字为:
read num
case $num in
1) echo 你选择了 1
;;
2) echo 你选择了 2
;;
3) echo 你选择了 3
;;
4) echo 你选择了 4
;;
*) echo 你选择了其他数字                          
;;
esac

while :       //这里 注意:while和:之间必须使用一个空格// 哇  shell和其他语言真的好多不一样 尤其空格这里特别要注意
do
 echo 输入一到五之间的数字:
 read num
 case num in
 1|2|3|4|5) echo 你输入的数字为 $num           case esac语句这里还可以这么用,方便
 ;;
 *) echo  not 1-5 之间的数字
  break
 ;;
esac
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值