linux内的循环

格式

while 【  条件判断 】 

do        

        语句体

done

上图

linux内的循环_第1张图片linux内的循环_第2张图片第一次代码,输入语句在外面,结果输入完(非hello)程序不断循环,没办法,ctrl+c给程序终止了,然后把用户输入的语句放到了循环体里面,结果正常了,

1.第一次判断 因为wi没有具体值,所有判断是成立,终止循环,但是判断是前面加“!”,这是反义,所以如果输入的不是hello,那么就一直循环,如果输入的是hello,则停止循环

其中需要注意的是中括号内部变量要加引号,注意空格分隔格式问题

while    【   判断 】  do  语句体   done    全程没有分号,这个和if  【 条件 】; then    语句体   fi的区别。当然也学过case  ,结束是两个分号

再看一个案例

until  do  while  这个与while相反,当条件成立就跳出循环

linux内的循环_第3张图片linux内的循环_第4张图片仔细梳理下,感觉下面这个循环没啥必要呢,不过存在就有存在的道理哈。

案例三:计算1+2+3+...+n

linux内的循环_第5张图片

if 加中括号,中括号和test功能类似,都是测试判断之意 这里涉及几个知识点,把之前的学习的复习下

由于我们输入变量并没有声明类型,所以默认是字符串,利用test中-n判断后面字符串是否是空,如果是空则返回false,

if里面的判断实现了,把数字替换成空格的命令 sed  ‘s/[0-9]//g’,固定格式,单引号,前后是s和g,小白写的时候,最前面是斜杠,导致报语法错误,后来回去查找命令才发现格式不对

那么就是上面判断就是把数字替换成空格,然后利用-n判断返回值,如果是数字,替换成空格后是空串,返回false,直接执行else,否则执行then后面的语句体。

根据输入的字符串数值,采用$((表达式)) 计算求和,这个在之前学到过可以用declare -i  也可以用固定格式计算。结果如下图

linux内的循环_第6张图片

你可能感兴趣的:(编程语言,bash)