shell循环loop

1. 循环

shell循环,不断执行某段程序,直到符合条件。

循环分为4种, while循环,until循环,for固定处理, for数值处理。

2. while循环

while循环是一直执行,直到条件不符合,才停止。

语法:

while [ condition ]

do

//do something

done

例: 循环直到用户输入正确

#!/bin/bash

# desc : while loop

while [ "$yn" != "yes" -a "$yn" != "YES" ]
do
    read -p "Please input yes/YES to stop : " yn
done

echo "OK"

执行结果:

[[email protected] sh]$ sh while.sh
Please input yes/YES to stop : no
Please input yes/YES to stop : yes
OK
[[email protected] sh]$ 

例:从1加到100

#!/bin/bash

# desc : while loop

sum=0
i=0

while [ $i -lt 100 ]
do
    i=$(($i+1));
    sum=$(($sum+$i))
done

echo "From 1 to 100, sum is : " $sum 

3. until循环

until循环和while相反,当条件condition成立时,终止循环。

语法:

until [ condition ]

do

//do something

done

例:

#!/bin/bash

# desc : while loop

until [ "$yn" == "yes" -o "$yn" == "YES" ]
do
    read -p "Please input yes/YES to stop : " yn
done
echo "OK"

执行:

[[email protected] sh]$ sh while.sh
Please input yes/YES to stop : hi
Please input yes/YES to stop : yes
OK
[[email protected] sh]$ 

4. for固定循环

for为已知次数的循环。

语法:

for var in con1 con2 ..

do

//do something

done

例:

#!/bin/bash

# desc : for loop
for animal in dog cat pig
do
    echo "HI, ${animal}"

done

执行:

[[email protected] sh]$ sh for.sh
HI, dog
HI, cat
HI, pig
[[email protected] sh]$

例:当前目录文件

#!/bin/bash

# desc : for loop
filelist=$(ls)
for filename in $filelist
do
    echo $filename
done

5. for数值循环

for数值循环,适用于循环数值计算。

语法

for (( 初始值; 限制值; 步长))

do

// do something

done

例:

#!/bin/bash

# desc : for loop

sum=0
for (( i=0; i<=100; i++ ))
do
    sum=$(($sum+$i))
done
echo "sum is : " $sum

地址:http://blog.csdn.net/yonggang7/article/details/40679701

时间: 2024-10-11 08:40:58

shell循环loop的相关文章

Atitit &#160;循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate).

Atitit  循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate). 1.1. 循环算是最基础的概念, 凡是重复执行一段代码, 都可以称之为循环. 大部分的递归, 遍历, 迭代, 都是循环.1 1.2. 递归的定义是, 根据一种(几种)基本情况定义的算法, 其他复杂情况都可以被逐步还原为基本情况.1 1.3. 递归的基本概念和特点1 1.4. 迭代(数学): 在循环的基础上, 每一次循环, 都比上一次更为接近结果.2 1.5. 编程语言中的循环

Java 语法 索引 ----- 循环(loop)

While 和  Do-While //while int i = 0; while (i < 10) { System.out.print(i++); } //do - while int i = 0; do { System.out.print(i++); } while ( i < 10 ); For 和 Foreach for (int i = 0; i < 10; i++){ System.out.print(i); } for (int k = 0, l = 10; k &l

老男孩教育每日一题-第63天-批量创建用户并设置随机密码(要求不能使用shell循环语句)

题目:批量添加20个用户,用户名为user1~20,密码为5个随机字符(要求不能使用shell循环语句) 解决方法 方法1  echo user{1..20}|xargs -n1|sed -r 's#(.*)#useradd \1 \&\& echo \1 >>/tmp/passwd.txt \&\& echo $RANDOM |md5sum |cut -c 1-5>>/tmp/passwd.txt \&\& echo `tail -

循环 loop

循环 loop 有限循环 k = 0 while k<9: print(k) k += 1 for i in range(3): print(i) #循环输出0, 1, 2.循环为左闭右开,相当于[0, 3) for i in range(1, 101, 2): print(i) #循环输出1, 3, 5, 7....99. #(1, 101, 2)其中2为循环输出的步长,隔两个数输出一次 无限循环 while flag=True: # flag 通常用做标志位 print(0) break 结

[转帖]shell 循环语句for/do/done和while/do/done以及break,continue

shell 循环语句for/do/done和while/do/done以及break,continue https://blog.csdn.net/weixin_38280090/article/details/81843264 原创舌耳 发布于2018-08-19 22:58:17 阅读数 15072 收藏展开 for/do/doneShell脚本的for循环结构和C语言很不一样,它类似于某些编程语言的foreach循环.例如: #! /bin/sh for FRUIT in apple ba

第十三章、学习 Shell Scripts 循环 (loop)

while do done, until do done (不定循环) while [ condition ] <==中括号内的状态就是判断式 do <==do 是回圈的开始! 程序段落 done <==done 是回圈的结束 until [ condition ] do 程序段落 done [[email protected] scripts]# vi sh13.sh #!/bin/bash # Program: # Repeat question until user input c

Linux Shell循环控制符与函数

循环控制符与函数详解 break循环控制符;continue循环控制符. 循环控制符 退出整个循环 则可以使用break循环控制符; 退出本次循环后执行后续的循环,使用continue循环控制符; #!/bin/bash while true do echo "please enter a operation {1copy| 2delete|3backup|4exit }" read -p " please enter youroperation:" op case

ffmpeg在shell循环中只执行一次问题

最近写了一个shell脚本,发现 ffmpeg 命令只执行了一次就停了,最后找到原因: ffmpeg有时会读取标准输入流,导致命令出错,解决办法是在ffmpeg命令之后添加 #xxx ffmpeg xxx < /dev/null #xxx 就可以了 参考:execute ffmpeg command in a loop

smarty模板引擎中section循环loop与total的区别

在smarty模板引擎的section循环中 $data=[101,102,103,105,104]; section的两个属性total与loop {section foo $data start=1 step=2} {$smarty.section.foo.total}--输出2 {$smarty.section.foo.loop}--输出5 {/section} 意即:使用total输出的是循环执行的次数,使用loop输出的是所循环数据的count