C C++最全Shell编程基础(四)_shell for var in(3),最新高频C C++笔试题分享

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

如果以上例子不是以空格分割,而是以逗号 (, ) 分割呢?

#!/bin/bash
list="a,b,c,d,e"
for str in $list
do 
    echo $str
done

结果输出 a,b,c,d,e

造成这个结果的原因是: for…in 循环默认是循环一组通过 空格 或制表符(tab键)或换行符(Enter键)分割的值。这个其实是由内部字段分隔符配置的,它是由系统环境变量 IFS 定义的。当然,既然是由环境变量定义的,那当然也就能修改啊。

修改IFS值

#!/bin/bash
#定义一个变量oldIFS保存未修改前的IFS的值
oldIFS=$IFS
#修改IFS值,以逗号为分隔符
IFS=$','
list=a,b,c,d,e
list2="a b c d e"
for var in $list
do
    echo $var
done
for var2 in $list2
do
    echo $var2
done

#还原IFS的值
IFS=$oldIFS

以上第一个循环会分别输出abcde几个值。而第二个循环会输出a b c d e(即未处理)。因为我们把 IFS 的值设置为逗号了, 当然,不一定要是逗号,想设置什么,你说了算!

  • C语言风格的for循环

bashc 语言风格的 for 循环遵循如下格式:

for (( variable assignment ; condition ; iteration process ))

一个例子足以说明:

#!/bin/bash
for (( i = 0; i <= 10; i++ ))
do
    echo $i
done    

上面例子循环11次,从0到10依次输出。稍微有过编程基础的都对此应该很熟悉。就不做详细阐述了。

二、while循环

如果你习惯了其它语言的 while 循环,那么到这儿你又会发现这个while循环有点变态了。与其它编程语言while的不同在于:在bash中的while语句,看起来似乎是结合了 if-then 语句(参考上一篇)和for循环语句。其基本格式如下:

while test command 
do
    other commands
done

if-then 语句一样,后面接 test 命令,如果 test 后面的命令的退出状态码为0. 那么就进入循环,执行 do 后面的逻辑。要注意在 do 后面的逻辑中写条件,避免死循环。

既然是接 test 命令,那么一切都可以参考if-then的test

示例一:

#!/bin/bash
flag=0
while test $flag -le 10
do
    echo $flag
    # 如果没有这句,那么flag的值一直为0,就会无限循环执行
    flag=$[$flag + 1]
done

以上判断 flag 是否大于或者等于10, 如果满足条件,那么输出当前 flag 的值,然后再将 flag 的值加 1。最终输出的结果为 0 到 10 的结果。

结合上一篇文章test的写法,我们还可以将以上示例变形为如下:

示例二:

    #!/bin/bash
    flag=0
    while [ $flag -le 10 ]
    do
        echo $flag
        flag=$[$flag + 1]
    done

示例三:

    flag=0
    while (( $flag <= 10 ))
    do
        echo $flag
        flag=$[$flag + 1]
    done

三、until循环语句

until 语句基本格式如下:

    until test commands
    do
        other commands
    done

在掌握 while 循环语句之后, until语句就很简单了。until语句就是与while语句恰好相反, while语句是在test命令退出状态码为0的时候执行循环, 而until语句是在test命令退出状态码不为0的时候执行。

示例:

    #!/bin/bash
    flag=0
    until (( $flag > 10 ))
    do
        echo $flag
        flag=$[ $flag + 1 ]
    done

以上输出 0 到 10 的值。until 后面的条件与上面 while 例子完全相反。

好啦,到此,我们学完了 shell 的循环语句啦。不过上面我们写的循环语句都是根据条件执行完毕,如果我们在执行的过程中想退出,该怎么办?接下来就继续看看怎么控制循环语句。

四、控制循环

与其它编程语言一样,shell是通过breakcontinue命令来控制循环的。下面就分别来看看二者的基本用法:

break:

  • break用于跳出当前循环

示例一:

    #!/bin/bash
    for (( flag=0; flag <= 10; flag++ ))
    do
        if (( $flag == 5 ))
        then
            break
        fi
        echo $flag
    done

以上当 flag 的值为5的时候,退出循环。输出结果为0-4的值。

  • break用于跳出内层循环

示例二:



![img](https://img-blog.csdnimg.cn/img_convert/f2689b7c6c70788eca59899e1f12e1c9.png)
![img](https://img-blog.csdnimg.cn/img_convert/6a0642d944c7e6758b9153f706c2d97a.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

417956)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值