用Shell编写for循环和while循环案例

(1)Shell中的单引号和双引号区别

??A="www.jfedu.net"

??B=‘$A‘

?echo $B

注释:?

? ? ? ? ? ?把www.jfedu.net赋值给变量A,?把变量A的内容赋值给变量B,打印出变量B的结果,打印出的结果为$A

? ? ? ? ? ?因为变量A是一个弱引用,引用的结果只是一个字符

A="www.jfedu.net"

B="$A"

echo $B

注释:

? ? ? ? ? ??把www.jfedu.net赋值给变量A,?把变量A的内容赋值给变量B,打印出变量B的结果,打印出的结果为www.jfedu.net

? ? ? ? ? ? 因为变量A是一个强引用,变量B的引用结果是www.jfedu.net,而不是一个字符

(2)for循环语法格式

? ? for? var? in (表达式)

? ? do

????????????语句

? ? done

(3) 用for循环打印1到100

? ? for i? ?in? `seq 1 100`

? ? do

? ? ? ? echo $i

? ? done

?注释: 单引号和双引号只适用于变量引用,涉及到计算,不能用单引号和双引号

??

拓展

? ? ?用for循环打印1到100另外二种写法

? for? i? ?in? $(seq 1 100)

? do

? ? ?echo $i

? done

? for i? in? `echo? {1..100}`

? do

? ? ?echo $i

? done

?注释: echo后面不要忘记加空格,不加空格,会报错

(4) 用for循环读取文件内容,并打印到屏幕上

?for i? in? `cat list.txt`

?do

? ? ?echo $i

done

(5) 用for循环批量到远程主机执行命令

? command="$*"

? for? i? ?in? ?`seq 1 100`

? do

? ? ?ssh -l? root? 192.168.1.$i? "$command"

? done

(6)用for循环批量到远程主机传输文件

?files="$*"

? for? i? ?in? `seq 1 100`

?do

? scp -r $files [email protected]$i:/tmp

done

(7)用for循环输出1到100的和

?j=0

for i? in? `seq 1 100`

do

? ?j=`expr $i+$j`

done

echo $j

(8) while循环格式

? while? (表达式)

? do

? ? ? 语句

?done

(9) 用while循环读取文件列表内容,并把结果打印在屏幕上

?while read line

?do

? ? ? echo $line

?done<list.txt

(10) 用while循环,每隔一秒在屏幕上输出hello? word

? while? sleep 1

? do

? ? ? echo "hello word"

? done

(11) 用while循环,打印1到100

? i=0

?while(i<=100)

?do

? ? ?echo $i

? ? ? i=`expr $i+1`

?done

(12) while循环打印1到100的和

? j=0

? i=1

? while(i<=100)

? do

? ? ? ?j=`expr $i+$j`

? ? ? ?((i++))

?done

? echo $j? ? ??

?

时间: 12-11

用Shell编写for循环和while循环案例的相关文章

Shell基础(三):使用for循环结构、使用while循环结构、基于case分支编写脚本、使用Shell函数、中断及退出

一.使用for循环结构 目标: 本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 1> 对192.168.4.0/24网段执行ping检测      2> ping检测可参考前一天的pinghost.sh脚本      3> 脚本能遍历ping各主机,并反馈存活状态 执行检测脚本以后,反馈结果如下图所示. 方案: 在Shell脚本应用中,常见的for循环采用遍历式.列表式的执行流程,通过指定变量从值列表中循环赋值,每次复

Linux | shell脚本-条件判断if和循环语句for

一.简介 上个章节中,我们学习了判断语句和运算语句.shell脚本中,这些判断语句一般都是和if.else.elif.for和while等语句一起使用. 在脚本编写中,条件判断语句常常用于多种情况的判断,符合哪一种情况就执行哪一种的命令. 二.shell条件判断语句:if 1.流程控制:if单分支结构 语法: if 条件判断:then 条件判断成功时执行的操作 ... fi 例子: 结合整数值比较-eq:检查主机是否在线 vim test1.sh运行结果:2.流程控制:if双分支结构 语法: i

浅谈Shell脚本中for循环、while循环及case分支语句

博文目录一.for循环语句二.使用while循环语句三.使用case分支语句 一.for循环语句 当面对各种列表重复任务时,使用简单的if语句已经难以满足要求,而顺序编写全部代码更是显得异常繁琐,困难重重.这将可以使用for循环语句很好的解决类似问题. 1.for语句的结构 使用for循环语句时,需要指定一个变量及可能的取值列表,针对每个不同的取值重复执行相同的命令序列,直到变量值用完退出循环.在这里,"取值列表"称为for语句的执行条件,其中包括多个属性相同的对象,需要预先指定(如通

Linux shell 流程控制(条件if,循环for,while)

Linux shell 流程控制(条件if,循环[for,while],选择[case]语句实例 linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介绍下,各个语句使用方法. 一.shell条件语句(if用法) if语句结构[if/then/elif/else/fi] if 条件测试语句 then action [elif 条件 action else action ] fi 如果对于:条件测试语句不是

shell 编程之 for while until 循环

shell 的for循环 的格式如下: for 变量  in 列表 do ... done 列表是一组值的序列 每个值通过空格隔开 每循环一次,列表中的下一个值赋给变量 in 列表是可选的,如果不用他,for循环使用命令行的位置参数 例子 输出列表中的数字 for x in 1 2 3 4 5 do echo $x done 输出 列表中中的字符串 for x in "this is my girl" do echo $x done 输出目录下的所有文件 for fi in * do

简单的自动化运维工具(shell+except+whiptail+功能模块化函数+循环)

简单的自动化运维工具(shell+except+whiptail+功能模块化函数+循环) http://www.cnblogs.com/M18-BlankBox/p/5881700.html

Shell脚本的条件控制和循环语句

条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误. if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句 if ... else ... fi 语句 if ... elif ... else ... f

shell 中的for、while循环及if语句

shell与其他语言一样也支持for.while循环 for循环的一般格式如下: 1 #!/bin/sh 2 3 for 变量 in 列表 4 do 5 command 1 6 command 2 7 command 1 8 ......... 9 command n 10 done 列表是一组值(数字.字符串等)组成的序列,每个值通过空格分隔.每循环一次,就将列表中的下一个值赋给变量.列表也可以是一个文件:in 列表是可选的,如果不用它,for 循环使用命令行的位置参数. 1 #!/bin/s

Shell脚本-----while循环和until循环

while 测试条件 do 语句1 语句2 done 测试条件:条件满足就循环,直到条件不满足就退出循环 while循环如何退出?在循环体中改变测试条件相应的变量值 补充:算术运算符 sum=$[$sum+$i] = sum+=$i -= *= sum+=1 = let sum++ sum-- sam=3 while [ $sam - le 5 ] do let sam++ done 例子:用户随机输入一个数值,就循环几次echo "test" >> /tmp/123  #

shell脚本常用脚本:for循环

shell脚本常用脚本:for循环 wheil 很多循环可以用for循环替换 for循环语法结构 for 变量名 in 变量取值列表 do 指令 done for ((exp1;exp2;exp3)) do 指令 Done 脚本实例:for  99乘法表 #!/bin/bash #Date       :2016-11-22 15:04:12 ##date "+%Y-%m-%d %H:%M:%S" #Author   :jorbabe #Mail       :[email prote