首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【shell】shell脚本实战-while循环语句

前言 上文我们讨论了for循环的使用,在有限循环里,我们使用for循环是很方便的一件事情,今天我们来探讨下while循环 while循环语句的语法分析 语法格式一: while [条件] do 操作...done 语法格式二: while read line do 操作 done < file 通过read命令每次读取一行文件,文件内容有多少行,while循环多少次 注意:只有表达式为真,do...和done之间的语句才会执行,表达式为假时,结束循环(即条件成立就一直执行循环) 例如: while true ;do echo 'helloword' done while 的使用案例 1....循环输出1-10的数字 #!/bin/bash num=1 while [ $num -le 10 ] do echo $num num=$(( $num + 1 )) done 2..../a.txt| while read line do echo $line done for实现的读取文件并着行打印 #!/bin/bash content=$(cat .

1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux shell脚本使用while循环执行ssh的注意事项

    如果要使用ssh批量登录到其它系统上操作时,我们会采用循环的方式去处理,那么这里存在一个巨大坑,你必须要小心了。...一、场景还原: 我现在是想用一个脚本获取一定列表服务器的运行时间,首先我建立一个名字为ip.txt的IP列表(一个IP一行),再建好密钥实现不用密码直接登录。然后写脚本如下: #!.../bin/bash while read ips; do echo $ips; done < ip.txt 脚本实现了逐行读取列表中的IP,但是: #!.../bin/bash while read ips; do echo $ips; upt=`ssh root@$ips "uptime"`; echo $upt; done < ip.txt...二、问题分析: while使用重定向机制,ip.txt文件中的信息都已经读入并重定向给了整个while语句,所以当我们在while循环中再一次调用read语 句,就会读取到下一条记录。

    4K80

    Shell脚本应用(for、while循环语句和case分支语句)

    1、for:读取不同的变量值,逐个执行同一组命令,直到取值完毕退出,变量值以空格分隔 语法: for 变量值 in 取值列表 do 命令序列 done 2、while:重复测试某个条件...,成立则执行,进入下一个循环,直到条件不成立为止 语法: while 【条件测试 】 do 命令 添加更改测试条件语句 done 例:批量添加用户(stu1~stu20...) prefix=“stu” i=1 while 【 $i -le 20 】 do useradd ${prefix}$i echo “123456” | passwd --stdin...${prefix}$i &> /dev/null let i++ done while条件为true:代表永远为真,死循环,必须使用exit或break命令才结束循环 必须进行递增,避免死循环...:方法: Let i++ let i=i+1 i=`expr i+1` 3、case:针对变量的不同取值,分别执行不同的命令序列 语法: case 变量值 in 模式1)

    1.1K40

    《Linux命令行与shell脚本编程大全》第十三章 更多的结构化命令

    本章讨论bash shell的循环命令for、while和until 13.1 for命令 重复执行一系列命令在编程中很常见。 bash shell提供了for命令,允许你创建一个遍历一系列值的循环。...只识别换行符,就需要这么做:IFS=$’\n’。将这个语句假如脚本中,告诉bash shell在数据值中忽略空格和制表符。 #!...13.5嵌套循环 循环语句可以在循环内使用任意类型的命令,包括其他循环命令。 注意在循环嵌套时执行次数是两次循环次数相乘。 例子:   1 #!...通常需要遍历存储在文件中的数据,需要结合两种技术: 1)使用嵌套循环 2)修改IFS环境变量 例子:   1 #!...用脚本创建用户 1.先建立一个文本,里面放用户id和name。用逗号分隔 ? 2. 再去读取上述文件中的信息 while IFS=',' read -r userid name 这个还是蛮有技巧的。

    1.7K60

    Python的if判断与while循环

    缩进——推荐四个空格 (使用2个、3个空格或者tab都是可以得) 不要tab与空格混用 不同软件对空格的显示逻辑总是一样的,但是对于tab却五花八门。 有的软件把Tab展开成空格,有的不会展开。...例子(输出三个数中的最大数与最小数): 代码1 num1 = input("Num1:") num2 = input("Num2:") num3 = input("Num3:") if num1 >...循环 Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。...while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立。...可在while语句后面加上else语句,else 中的语句会在循环正常执行完(即 while 不是通过 break 跳出而中断的)的情况下执行。 三段使用while语句猜年龄的代码。

    1.6K70

    Shell脚本(for、while和case语句的应用示例)

    一、for循环语句 1、根据姓名列表批量添加用户 步骤:首先创建一个姓名列表 vim /root/users.txt 然后创建脚本vim uaddfor.sh批量添加用户 授权并执行后查看用户是否已创建...2、根据ip地址列表检查主机状态 步骤:首先创建一个ip地址列表文件 vim /root/padds.txt 然后创建脚本vim chkhosts.sh 授权并执行 二、while循环语句 1、批量添加规律编号的用户...(2)将网段地址(如192.168.4.)赋值给变量NADD,作为检测地址的前缀。 (3)使用while循环语句,重复检测目标并记录MAC地址,主机地址从1-254。...脚本如下: [root@localhost ~]# vi getarp.sh #!/bin/bash # 1. 定义网段地址、MAC列表文件 NADD="192.168.4."...(2)通过awk命令过滤出/etc/ethers文件中的所有IP地址,赋值给变量TARGET。 (3)使用for循环语句,读取TARGET变量中的IP地址,重复探测FTP开启情况。

    2.5K30

    shell脚本专题(04):循环

    二、本文前言 本文是该专题的第四篇。 循环是编程的一部分,shell脚本的编写离不开循环。文章主要介绍了通过两层for循环查找可执行文件和使用while循环创建用户这两个示例。.../bin/bash':脚本首行,声明执行脚本的shell 'IFS=:':自定义分隔符为: 'for folder in PATH':开启外层循环,使用for命令循环读取变量\PATH并赋值给folder.../bin/bash # 批量新增用户 input="users.txt" while IFS=','';' read username tips shell do echo "adding $username...IFS为内部字段分隔符,默认将空格、制表符和换行符当做分隔符,这里更改为','和';'。 四、本文总结 本文通过两个循环示例:查找可执行文件和批量新增用户,介绍了for循环和while循环的基本使用。...同时也对read、IFS、冲入重定向做了说明。循环是shell编程的重要内容,学好循环可以为今后的学习打下牢固的基础。

    1.6K11

    shell 循环命令

    如果你需要输出一篇英文文章,英文文章内容自然存在单词间的空格,行与行之间的换行符,现在如果shell输出内容的字段分隔符是空格,那这会存在一个问题,就是输出内容时内容会排成一列,而不是一行一行的输出。...造成这个问题的原因是特殊的环境变量 IFS ,叫作内部字段分隔符(internal field separator)。IFS 环境变量定义了bash shell用作字段分隔符的一系列字符。...要解决这个问题,可以在 shell 脚本中临时更改 IFS 环境变量的值来限制被 bash shell 当作字段分隔符的字符,比如 IFS=$'\n',这样字段分隔符就被更改为换行了。...(( a = 1; a < 10; a++ )) C语言风格的 for 循环的格式会让 bash shell 脚本程序员摸不着头脑,因为它使用了C语言风格 的变量引用方式而不是shell风格的变量引用方式...控制循环 有时我们在脚本中执行循环的过程中,我们需要根据特定的条件来及时的退出循环去执行其他的任务,所以我们要能够对循环进行条件上的控制,shell 中 break 命令,continue 命令能帮我们控制循环内部的情况

    1.4K20

    基于Bash Shell的一个审计脚本

    忽然想起来自己还写过两个小脚本,讲完课,没事儿改了改,给各位小伙伴们发上来,脚本没什么技术含量,无非就是些awk、grep、find、function等,希望能派上用场。...二、网站日志分析 这个基本没变,懒得改了,详情可参考3年前写的那篇文章。 如何编写自己的Web日志分析脚本? ? 运行结果如下: ? ?...四、总结 其实整体内容,就是通过function函数来实现一个循环的小框架,来实现输入不同数字来执行定义好的函数功能而已。...毕竟都2020年了,不会徒手写shell脚本的攻城狮不是好运维~ 写个整体代码的框架示例,可能看起来能更清楚些... #!...五、题外话 在kali中,可以将常用的工具集中起来,配合bash shell的function函数,来实现自动化执行,就不需要背命令了,无论什么工具,输个IP地址或者域名就可以直接使用了,只要你提前在function

    1.2K30

    shell循环语句

    /bin/bash num=$[$RANDOM % 1000] #a用于方便退出while循环 a=0 #b用于统计猜测次数 b=0 while [ $a -eq 0 ] do read -p...、示例2、为指定用户发送在线消息 若用户不在线(未登录系统),则每10分钟试一次,直至用户登录系统后再发送信息 用户名与消息通过位置参数传递给脚本 4、多线程 利用 实现后台并行执行 do {...host_ip_online.txt cat /root/shell4/host_ip_offline.txt 5、循环体三种跳出方式 5.1、exit n (0-255) 退出shell脚本进程,...并且可以返回指定状态码 exit执行后,脚本后面所有语句都不会执行 5.2、break 跳出当前的循环体,去执行循环后面的语句 break跳出单层循环,break 2跳出2层循环...5.3、continue 终止某次循环的执行,但是不会完全终止整个循环 while until循环中使用需要谨慎,因为continue放在变量迭代语句前会造成死循环 发布者:全栈程序员栈长,

    62310

    房上的猫:while循环与do-while循环,debug的调试运用

    一.循环结构  1.循环不是无休止进行的,满足一定条件的时候循环才会继续,称为"循环条件",循环条件不满足的时候,循环退出  2.循环结构是反复进行相同的或类似的一系列操作,称为"循环操作" 二.while...步骤:   1.分析错误,设置断点    断点用来调试的时候确定程序停在某一行代码处,以便发现程序错误   2.启动调试,单步执行    设置好断点后,就可以单击"启动调试"按钮   3.F5与F6对比...1.语法: do{    //循环操作   }while(循环条件);   解析:和while循环不同,do-while循环以关键字do开头,然后是大括号括起来的循环操作,接着才是while关键字和紧随的小括号括起来的循环条件...1)分析循环条件和循环操作   (2)套用do-while语法写出代码   (3)检查循环能否退出 五.while与do-while循环结构  1.相同点:   都是循环结构,使用"while(循环条件...)"表示循环条件,使用大括号将循环操作括起来  2.不同点:   (1)语法不同    与while循环结构相比,do-while循环结构将while关键字和循环条件放在后面,而且前面多了关键字do,后面多了一个分号

    2.3K110

    【趣学程序】Linux流程语句

    如果不加rm -rf /upuptop 则是死循环 linux中的分割 bash最终的扩展是切割扩展,其通过一个环境变量 IFS 里面定义的分隔符进行分割。默认为空格,制表符,换行符。...IFS 的定义是放的三个标识符的ASCII码,例如:我们可以通过$"\n"获去换行符的码值 在脚本中,如果你修改了用完之后一定要记得改回去 可以使用 awk 命令切割字符串 练习 获取指定参数文件夹中包含其子目录中最大文件.../bin/bash # 备份$IFSoldIFS=$IFS # 设置IFS的切割只为换行符IFS=$'\n' # 循环遍历指定参数目录下的所有文件和目录for i in `du -a $1 | sort...]# cat a.txt a 1b 2c 3 shell脚本: [root@CentOS6 shell]# vim readFile.sh #!...使用管道为while读取 注意子进程计数处理# 由于管道会开启左侧与右侧的子进程执行程序,所以这里使用保存文件来计数export num=0rm -rf tempnumcat a.txt | while

    62810
    领券