shell脚本while循环(shell脚本while循环读取文件)
shell脚本while用法
while? do? 循环是shell中比较简单的一种循环用法,它的构成是这样的
while? 条件
do
执行语句
done
先来一个简单的小例子―累加
再来一个比较有意思的例子,实现一个加法计算器的功能
结果为
这个脚本中有个命令――read命令,它的作用是读取我们从键盘上输入的信息,详细的用法在下一章当中讲解。
简单的shell while循环,朋友们指点下
#!/bin/bash
i=1 设置变量i的初始值是1
while [ $i -le 1000 ] 开始while循环----当变量i小于等于1000时
do
echo 1 http://666.vip.cpolar.cn/ff 开始 执行 echo 1 http://666.vip.cpolar.cn/ff
let i++ 执行完了上述命令后,开始给变量i加1,此时变量i
done 就变成了2,因为2是小于1000,所以继续执行
echo 1 http://666.vip.cpolar.cn/ff,以此类推。直到1001,因为1001
大于1000,所以跳出循环,终止执行。
shell while循环
把
while?[?$c?!=?"1"$c?!=?"2"?]
改成
while?[[?$c?!=?"1"$c?!=?"2"?]]
或者
while?[?$c?!=?"1"?-a?$c?!=?"2"?]
另外,如果像这样是输入1或者2,建议换成 select 语句。
shell脚本 while循环
while?:
do
...?#填充点击事件
done
#不知道你是不是这个意思。。。
shell编程中while ture和while :为什么等同?
shell编程中while true与while :确实等同。类似于C语言中的 while (1),用于构造无穷循环。
在shell编程中经常用到循环,常用的循环有for和while循环两种。while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别。
一、常用语法
1、for循环
for循环常用的语法结构有如下几种:
for 变量 in seq字符串
for 变量 in `command` " "
for 变量 in "$@"或“$*”
for((赋值;条件;运算语句))
2、while循环
while循环常用的语法结构有如下几种:
二、行读取示例
这里以常见的df获取磁盘信息为例,了解下使用for和while的几种循环方法处理时的区别。先看下我写的脚本,内容如下:
上面的脚本执行时结果如下:
可以看到,只有后面两种方法可以正常获取到我们想要的数据,前面两种方法在处理时和我们想要的结果都不一样。此示例得出的结果为:
1、while循环: 以行读取文件,默认分隔符是空格或者Tab;
2、for循环: 以空格读取文件,也就是碰到空格,就开始执行循环体,所以需要以行读取的话,就要把空格转换成其他字符。
三、ssh连接与wait
这里还是以一个测试脚本为例:
此示例的结果这里不再输出,具体可以使用该脚本ssh几台主机做个测试,测试后得到结果如下:
1、for循环: 循环体在后台执行,等待循环体全部执行结束,后面的命令接着执行。
2、while循环: wait没起到作用,循环体在后台执行,后面的命令也同时在执行。循环体内有ssh、scp、sshpass的时候有执行一次循环就退出的情况,解决该问题方法有如下两种:
a、使用ssh -n "command" ;
b、将while循环内加入null重定向,如 ssh "cmd" /dev/null 将ssh 的输入重定向输入。