Shell循环语句多种用法

for循环语句

列表形式有:

实例1 在命令中定义一系列的值

第一种写法:
[[email protected] ~]# vim 1.sh
#!/bin/bash
for i in 1 2 3 4                             //在命令中定义列表
do
echo $i
done
[[email protected] ~]# sh 1.sh
1
2
3
4
第二种写法:
[[email protected] ~]# vim 2.sh
#!/bin/bash
for i in {1..5}
do
echo $i
done
[[email protected] ~]# sh 2.sh
1
2
3
4
5

使用{初始值..结束值}来表示一个区间的数值

实例2 以变量为列表

[[email protected] ~]# vim 3.sh
#!/bin/bash
list="1 2 3 4"
for i in $list
do
echo $i
done
[[email protected] ~]# sh 3.sh
1
2
3
4

实例3 用命令生成列表

[[email protected] ~]# vim 4.sh
#!/bin/bash
for i in `seq 1 1 5`
do
echo $i
done
[[email protected] ~]# sh 4.sh
1
2
3
4
5

使用seq命令生成列表,seq命令的格式为:seq 初始值 递增值 终止值

实例4 将目录作为列表

[[email protected] ~]# vim 5.sh
#!/bin/bash
for i in /root/*
do
if
[ -d "$i" ]
then
echo "$i is a directory"
elif
[ -f "$i" ]
then
echo "$i is a file"
fi
done
[[email protected] ~]# sh 5.sh
/root/5.sh is a file
/root/a is a directory
/root/anaconda-ks.cfg is a file
/root/a.sh is a file
/root/initial-setup-ks.cfg is a file

利用for循环语句计算出“1+……+100”的值

[[email protected] ~]# vim 6.sh
#!/bin/bash
sum=0
for ((i=1;i<=100;i++ ))
do
let sum+=$i
done
echo "1+..+100="$sum
[[email protected] ~]# sh 6.sh
1+..+100=5050

利用while循环语句计算出“1+……+100”的值

[[email protected] ~]# vim 7.sh
#!/bin/bash
i=0
sum=0
while [ $i -le 100 ]
do
let sum+=$i
let i++
done
echo "1+..+100="$sum
[[email protected] ~]# sh 7.sh
1+..+100=5050

退出正在进行循环的命令:

[[email protected] ~]# vim 8.sh
#!/bin/bash
for i in 1 2 3 4 5
do
if
[ $i -eq 3 ]
then
break
fi
echo $i
done
[[email protected] ~]# sh 8.sh
1
2
Linux脚本中的break continue exit 都有结束循环的作用,但是它们的区别
* **break:**结束并退出循环

* **continue:**在循环中不执行continue下面的代码,转而进入下一轮循环

* **exit:**退出脚本,常带一个整数给系统,如 exit 0

原文地址:https://blog.51cto.com/14157628/2425658

时间: 2024-10-27 17:36:46

Shell循环语句多种用法的相关文章

老男孩教育每日一题-第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 -

[转帖]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

while,do while和for循环语句的用法

一.while的用法 //循环 int i = 10; while(i > 0){ if(i==8) {i--; continue;//跳过 } System.out.println(--i); if(i==5) break; }//if循环语句 break中断 二.do while 的用法 do{ System.out.println("++i"); } while(i < 10 ); 三.for的用法 for (int m = 10;m > 0; --m){ if

for循环语句的用法

for循环有三种结构:列表for循环,不带列表for循环和类C风格for循环. do和done之间的命令成为循环体,执行次数和list列表中常熟或字符串的个数相同.for循环,首相是将in后list的第一个常数或字符串复制给循环变量,然后执行循环体,以此执行list,最后执行done命令后的命令序列. shell支持列表for循环使用略写的计数方式,1~5的范围用{1..5}表示, shell中还支持按规定的步数进行跳跃的方式实现for循环,例如计算1~100内所有的奇数 一.列表for循环 #

linux下Bash编程循环语句特殊用法之编写脚本(十)

linux下Bash编程while语句特殊用法之编写脚本(十) 1.循环控制: break:中断整个循环语句,即退出循环后执行脚本后面的语句 continue:中断当前本次循环,提前进入下一轮循环 exit:结束脚本运行 2.while死循环,即当不知道循环多少次时 格式 : while :; do 循环语句 done 3.while从输入重定向文件中每行读取并赋值给read变量 格式:  while read LINE;do 循环语句 done < 路径文件 4.实例脚本 4.1.找出/etc

Python中,While循环语句的用法及注意事项

今天跟着老师学习了While语句的用法,听老师讲的时候是听明白了,感觉好简单,但是自己做一遍的时候出了好多处的错误.我犯的错误都是新手常犯的,因此我觉得有必要把这次记录下来,提醒自己也提醒跟我一样的小白要注意一下. 这次做的是猜年龄的小程序,案例代码如下: 1 age=50 2 flag = True 3 while flag: 4 usr_input=int(input("请输入你猜测的年龄:")) 5 if usr_input == age: 6 print("恭喜,回答

C语言循环语句工程用法

-循环语句分析 循环语句的基本工作方式 - 通过条件表达式判断是否执行循环体 - 条件表达式循环if语句表达式的原则 do.while.for的区别 - do语句先执行后判断,循环体至少循环一次 - while语句先判断后执行,循环体可能不执行 - for语句先判断后执行,相比while更简洁 三者在使用上的区别: 1 #include <stdio.h> 2 3 int f1(int n) 4 { 5 int ret = 0; 6 7 if( n > 0 ) 8 { 9 do 10 {

shell 循环语句应用实例

1 for语句 语法格式 for 变量 in 值(或者循环条件) do 命令 done 给多个用户发送邮件 #!/bin/bash domain=163.com for user in tom hom jem do mail -s "happy new year" [email protected]$domain < /var/log/messages done 打印9*9的乘法口诀 #!/bin/bash for i in {1..9} do for ((j=1,j<=i

Shell循环语句:if

[[email protected] ~]# vim mkcdrom.sh #!/bin/bashDIR="/media/cdrom"if [ ! -e $DIR ]thenmkdir -p $DIRfi [[email protected] ~]# vim chkhost.sh#!/bin/bash ping -c 3 -i 0.2 -W 3 $1 &> /dev/nullif [ $? -eq 0 ]thenecho "Host $1 is on-line&