- 浏览: 4734248 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
bzhao:
你也应该可以这样:(not tested)./rbtunnel ...
在Bash脚本中怎么关闭文件描述符? -
bzhao:
如果有A进程原代码情况下,通过如下调用,把他的子进程继承关闭则 ...
在Bash脚本中怎么关闭文件描述符? -
Master-Gao:
楼主咋没分析下源码呢?
我使用过的Linux命令之dirname - 截取给定路径的目录部分 -
jiedushi:
tail -F 就可以吧
Linux下实时跟踪log4j日志文件的bash脚本 - 增强了tail -f的功能 -
java_is_new:
新手学习了,就是不明白为一个网卡配多个ip有什么用
我使用过的Linux命令之ifconfig - 网络配置命令
我使用过的Linux命令之while - Bash中的While循环
本文链接:http://codingstandards.iteye.com/blog/780524 (转载请注明出处)
用途说明
while循环是Shell中常用的语法结构,它与其他编程语言中的while有些类似,只是写法有些不一样罢了。
常用格式
格式一
while 条件;
do
语句
done
格式二 死循环
while true
do
语句
done
格式三 死循环
while :
do
语句
done
格式四 死循环
while [ 1 ]
do
语句
done
格式五 死循环
while [ 0 ]
do
语句
done
使用示例
示例一
COUNTER=0 while [ $COUNTER -lt 10 ]; do echo The counter is $COUNTER let COUNTER=COUNTER+1 done
[root@jfht ~]# COUNTER=0
[root@jfht ~]# while [ $COUNTER -lt 10 ]; do
> echo The counter is $COUNTER
> let COUNTER=COUNTER+1
> done
The counter is 0
The counter is 1
The counter is 2
The counter is 3
The counter is 4
The counter is 5
The counter is 6
The counter is 7
The counter is 8
The counter is 9
[root@jfht ~]#
这个while循环改用for循环更好些
for ((COUNTER=0; COUNTER<10; ++COUNTER)) do echo The counter is $COUNTER done
[root@jfht ~]# for ((COUNTER=0; COUNTER<10; ++COUNTER))
> do
> echo The counter is $COUNTER
> done
The counter is 0
The counter is 1
The counter is 2
The counter is 3
The counter is 4
The counter is 5
The counter is 6
The counter is 7
The counter is 8
The counter is 9
[root@jfht ~]#
示例二
while true do date sleep 1 done
[root@jfht ~]# while true
> do
> date
> sleep 1
> done
2010年 10月 10日 星期日 16:35:22 CST
2010年 10月 10日 星期日 16:35:23 CST
2010年 10月 10日 星期日 16:35:24 CST
2010年 10月 10日 星期日 16:35:25 CST
2010年 10月 10日 星期日 16:35:26 CST
2010年 10月 10日 星期日 16:35:27 CST
Ctrl+C
[root@jfht ~]#
示例三 读取输入
while read line do echo $line done
[root@jfht ~]# while read line
> do
> echo $line
> done
hello
hello
world
worldCtrl+D
[root@jfht ~]#
实例四 处理命令行参数
文件 while_4.sh
#!/bin/sh usage() { echo "usage: $0 [-a] [-e <admin>] [-f <serverfile>] [-h] [-d <domain>] [-s <whois_server>] [-q] [-x <warndays>]" } while getopts ae:f:hd:s:qx: option do case "${option}" in a) ALARM="TRUE";; e) ADMIN=${OPTARG};; d) DOMAIN=${OPTARG};; f) SERVERFILE=$OPTARG;; s) WHOIS_SERVER=$OPTARG;; q) QUIET="TRUE";; x) WARNDAYS=$OPTARG;; \?) usage; exit 1;; esac done echo "ALARM=$ALARM" echo "ADMIN=$ADMIN"
[root@jfht ~]# cat while_4.sh
#!/bin/sh
usage()
{
echo "usage: $0 [-a] [-e <admin>] [-f <serverfile>] [-h] [-d <domain>] [-s <whois_server>] [-q] [-x <warndays>]"
}
while getopts ae:f:hd:s:qx: option
do
case "${option}" in
a) ALARM="TRUE";;
e) ADMIN=${OPTARG};;
d) DOMAIN=${OPTARG};;
f) SERVERFILE=$OPTARG;;
s) WHOIS_SERVER=$OPTARG;;
q) QUIET="TRUE";;
x) WARNDAYS=$OPTARG;;
\?) usage; exit 1;;
esac
done
echo "ALARM=$ALARM"
echo "ADMIN=$ADMIN"
[root@jfht ~]# chmod +x while_4.sh
[root@jfht ~]# ./while_4.sh
ALARM=
ADMIN=
[root@jfht ~]# ./while_4.sh -a
ALARM=TRUE
ADMIN=
[root@jfht ~]# ./while_4.sh -e hy
ALARM=
ADMIN=hy
[root@jfht ~]#
问题思考
1. 为什么 while [ 0 ] 也会是死循环?
2. 怎么使用while read line从文件中读入数据?
相关资料
【1】BASH Programming - Introduction HOW-TO 7.3 While sample
【2】Audbel 语法单行BASH的无限while循环
【3】一个有很多while示例的英文网页 Bash While Loop Example
发表评论
-
在Linux用tar归档压缩文件时忽略某些文件和目录
2013-02-01 10:19 16933在Linux下,常用tar对文 ... -
使用nmap扫描服务器端口的一次操作
2012-11-01 17:00 15082使用nmap扫描服务器端口的一次操作 本文来自:http ... -
我使用过的Linux命令之wget - ooo
2011-09-14 13:10 0我使用过的Linux命令之wg ... -
推荐一篇学习Vim使用的好文:酷壳 - 简明 Vim 练级攻略
2011-09-09 12:53 9093简明 Vim 练级攻略 http://coolshell.c ... -
推荐一篇学习Vim使用的好文:酷壳 - 简明 Vim 练级攻略
2011-09-09 12:49 1简明 Vim 练级攻略 http://coolshell.c ... -
我使用过的Linux命令之:(冒号) - 啥也不做(除了……)
2011-08-29 13:18 11994我使用过的Linux命令之: ... -
我使用过的Linux命令之date - 显示、修改系统日期时间
2011-08-25 09:21 41912我使用过的Linux命令之da ... -
我使用过的Linux命令之declare - 声明shell变量(不知道没关系、知道了就更好的内建命令)
2011-08-16 09:22 21747我使用过的Linux命令之declare - 声明shell变 ... -
我使用过的Linux命令之alias - 设置命令的别名,让 Linux 命令更简练
2011-08-11 09:31 28724我使用过的Linux命令之alias - 设置命令的别名,让 ... -
我使用过的Linux命令之ar - 创建静态库.a文件
2011-08-08 10:40 51820我使用过的Linux命令之ar - 创建静态库.a文件 本 ... -
我使用过的Linux命令之crontab - 设置例行任务(类似于Windows中的任务计划)
2011-08-04 22:26 9694我使用过的Linux命令之crontab - 设置例行任务(类 ... -
我使用过的Linux命令之chmod - 改变文件/目录的访问权限
2011-08-03 21:33 10647我使用过的Linux命令之chmod - 改变文件/目录的访问 ... -
我使用过的Linux命令之export - 设置或显示环境变量
2011-08-02 19:55 25378我使用过的Linux命令之export - 设置或显示环境变量 ... -
我使用过的Linux命令之wc - 统计文件行数、单词数或字节数
2011-07-26 10:50 28939我使用过的Linux命令之wc - 统计文件行数、单词数或字节 ... -
我使用过的Linux命令之groupdel - 删除群组
2011-07-22 22:13 9625我使用过的Linux命令之gr ... -
我使用过的Linux命令之ifconfig - 网络配置命令
2011-07-21 20:43 60393我使用过的Linux命令之ifconfig - 网络配置命令 ... -
我使用过的Linux命令之ll - 列出文件/目录的详细信息
2011-07-20 21:22 7117我使用过的Linux命令之ll ... -
我使用过的Linux命令之mkdir - 创建目录
2011-07-20 20:58 13613我使用过的Linux命令之mkdir - 创建目录 本文链 ... -
我使用过的Linux命令之perror - 解释错误代码
2011-07-18 20:29 24983我使用过的Linux命令之perror - 解释错误代码 ... -
我使用过的Linux命令之ping - 测试与目标主机的连通性
2011-07-16 10:46 26281我使用过的Linux命令之ping - 测试与目标主机的连通性 ...
相关推荐
使用命令替换来产生for循环的[list] 10-7. 对于二进制文件的一个grep替换 10-8. 列出系统上的所有用户 10-9. 在目录的所有文件中查找源字串 10-10. 列出目录中所有的符号连接文件 10-11. 将目录中的符号连接文件名...
【shell脚本】shell脚本之条件判断if、for与while循环(shell脚本基础学习二) shell中的if 单分支 if 条件测试 ;then 命令序列 fi 双分支 if 条件测试 ;then 命令序列1 else 命令序列2 fi 多分支 if 条件测试 ;...
4.8 使用Red Hat的wmconfig命令 54 4.9 个人化的X资源文件 54 4.10 使用xdm 55 4.11 XFree86疑难解答 57 4.12 小结 57 第5章 窗口管理器 58 5.1 GNOME X环境 59 5.1.1 什么是GNOME 59 5.1.2 GNOME 安装组件 59 5.1.3...
第1章 BashShell命令 6 1.1 Shell提示符 6 1.2 文件与目录Shell命令 7 1.2.1 更改目录命令(cd) 7 1.2.2 列表命令(ls) 7 1.2.3 操作文件命令 10 1.2.4 目录处理命令 14 1.2.5 查看文件内容命令 15 1.3 监控程序 20 ...
目录shell脚本规范bash字符变量运算符算数运算符关系运算符逻辑运算符字符串运算符文件比较运算符流程控制if elsefor 循环while 语句until 循环case 语句break 命令continue 命令函数参考 Bash(GNU Bourne-Again ...
for 实现: 代码如下: #!/bin/bash set i=0 set j=0 for((i=0;i<10;)) ... echo “————-j is $j ——————-“ ...while实现: ... 您可能感兴趣的文章:Shell中的循环语句for、while、until实例讲解Shel
你可以使用UNIX/LINUX中一些比较简单的命令或命令组合来执行1、2、3、4、5的任务。对于任务6和7,你需要编写单独的Shell脚本文件(必须分别命名为add和delete)并且在你的主脚本menu文件中调用这些脚本文件。 ...
/ 1819.5 case条件语句的Linux系统脚本范例 / 1879.6 本章小结 / 191第10章 while循环和until循环的应用实践 / 19210.1 当型和直到型循环语法 / 19210.2 当型和直到型循环的基本范例 / 194第11章 for和select...
在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue。 break命令 break命令允许跳出所有循环(终止执行后面的所有循环)。 下面的例子中,脚本进入死...
Bash脚本,可使用fdisk实用程序在GNU / Linux上缩小分配的硬盘分区, 分割分区,并从剩余的可用空间中创建一个新分区,对其进行格式化并挂载它。 以脚本中的/ dev / vda分区为例,缩小到30 GB。 仅当使用少于或...
第二版本 0.10.1 第0步骤: ...(而子进程里如果有while循环的话,ctrl+c 却杀不死while) 第9步骤: alias 别名命令 实现:alias 与 unalias 命令 alias 命令在隐藏文件 .aliasrc里,可自己手动向里面添加
线性规划的matlab代码 software_engineering This ...循环:while/for in/xargs/find -exec 1.1.5 监测系统:w/bmon/iostat/iotop 1.1.6 misc:ln/export/实时设置变量/source/chmod/chown/#!/sshpass/
目录 历史 前言 I....1. 程序的基本概念 1. 程序和编程语言 2. 自然语言和形式语言 ...3. 在Linux C编程中使用Unicode和UTF-8 B. GNU Free Documentation License Version 1.3, 3 November 2008 参考书目 索引
当然首先想到的是写一个触发的脚本,在触发脚本中使用死循环来解决此问题,如下: cat kick.sh 代码如下: #!/bin/bash while : ;do /home/somedir/scripts.sh 2>/dev/null & sleep 3 done 注意第一次运行时请...
第14天课程内容: 1、Linux内核编译(2):编译内核的步骤、重新编译 2、CentOS系统安装:创建工具、语法检查、安装过程如何获取kickstart文件 3、anaconda应用的工作过程、anaconda...5、bash脚本编程之while循环语句
面向过程:顺序执行选择执行: if, case循环执行: for, while, until 一、for语句 格式: for 变量 in 列表;do 语句1; 语句2; … done 例1、写一个脚本,添加10个用户,并让每个用户的密码同用户名】 代码...