- 浏览: 4754768 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 17055在Linux下,常用tar对文 ... -
使用nmap扫描服务器端口的一次操作
2012-11-01 17:00 15143使用nmap扫描服务器端口的一次操作 本文来自:http ... -
我使用过的Linux命令之wget - ooo
2011-09-14 13:10 0我使用过的Linux命令之wg ... -
推荐一篇学习Vim使用的好文:酷壳 - 简明 Vim 练级攻略
2011-09-09 12:53 9151简明 Vim 练级攻略 http://coolshell.c ... -
推荐一篇学习Vim使用的好文:酷壳 - 简明 Vim 练级攻略
2011-09-09 12:49 1简明 Vim 练级攻略 http://coolshell.c ... -
我使用过的Linux命令之:(冒号) - 啥也不做(除了……)
2011-08-29 13:18 12104我使用过的Linux命令之: ... -
我使用过的Linux命令之date - 显示、修改系统日期时间
2011-08-25 09:21 41987我使用过的Linux命令之da ... -
我使用过的Linux命令之declare - 声明shell变量(不知道没关系、知道了就更好的内建命令)
2011-08-16 09:22 21836我使用过的Linux命令之declare - 声明shell变 ... -
我使用过的Linux命令之alias - 设置命令的别名,让 Linux 命令更简练
2011-08-11 09:31 28831我使用过的Linux命令之alias - 设置命令的别名,让 ... -
我使用过的Linux命令之ar - 创建静态库.a文件
2011-08-08 10:40 51936我使用过的Linux命令之ar - 创建静态库.a文件 本 ... -
我使用过的Linux命令之crontab - 设置例行任务(类似于Windows中的任务计划)
2011-08-04 22:26 9754我使用过的Linux命令之crontab - 设置例行任务(类 ... -
我使用过的Linux命令之chmod - 改变文件/目录的访问权限
2011-08-03 21:33 10709我使用过的Linux命令之chmod - 改变文件/目录的访问 ... -
我使用过的Linux命令之export - 设置或显示环境变量
2011-08-02 19:55 25442我使用过的Linux命令之export - 设置或显示环境变量 ... -
我使用过的Linux命令之wc - 统计文件行数、单词数或字节数
2011-07-26 10:50 29020我使用过的Linux命令之wc - 统计文件行数、单词数或字节 ... -
我使用过的Linux命令之groupdel - 删除群组
2011-07-22 22:13 9695我使用过的Linux命令之gr ... -
我使用过的Linux命令之ifconfig - 网络配置命令
2011-07-21 20:43 60560我使用过的Linux命令之ifconfig - 网络配置命令 ... -
我使用过的Linux命令之ll - 列出文件/目录的详细信息
2011-07-20 21:22 7210我使用过的Linux命令之ll ... -
我使用过的Linux命令之mkdir - 创建目录
2011-07-20 20:58 13690我使用过的Linux命令之mkdir - 创建目录 本文链 ... -
我使用过的Linux命令之perror - 解释错误代码
2011-07-18 20:29 25085我使用过的Linux命令之perror - 解释错误代码 ... -
我使用过的Linux命令之ping - 测试与目标主机的连通性
2011-07-16 10:46 26617我使用过的Linux命令之ping - 测试与目标主机的连通性 ...
相关推荐
条件控制通常用if…then…elif…else…fi语句来实现,循环控制则包括for循环、while循环以及until循环。BASH还支持使用函数,函数的定义和调用能够帮助程序员在脚本中重用代码,提高编程效率。 BASH还涉及到输入、...
在Linux世界中,Bash(Bourne-Again SHell)是广泛使用的命令行解释器,它提供了丰富的命令行工具和脚本编写能力。"Linux-一行bash命令集合的仓库"是一个宝贵的资源,包含了各种实用的一行Bash命令,旨在帮助用户...
在IT行业中,Linux操作系统是开发者和系统管理员的重要工具,而Bash(Bourne-Again SHell)作为Linux默认的命令行解释器,是与操作系统交互的基础。本指南旨在深入探讨Bash,帮助读者掌握其核心概念、常用命令以及...
在IT领域,尤其是在系统管理和自动化任务执行中,Bash(Bourne-Again SHell)是一种广泛使用的命令行解释器,它是Unix、Linux和macOS等操作系统中的默认shell。掌握Bash命令和语法对于提高工作效率至关重要,特别是...
此外,还可以使用命令的输出(`$(COMMAND)`)或者 glob 模式(如 `*.sh`)来作为列表。 **特殊用法**:双小括号 `((…))` 使得在bash Shell中可以进行算术运算和C语言风格的变量操作,例如: ```bash for ((I=1; I...
4. 复合命令:复合命令,如 `if` 语句、循环 (`for`, `while`) 和函数定义,提供了更高级的控制结构,使脚本具有更强的逻辑处理能力。 五、Shell 参数和扩展 1. 位置参数:`$1`, `$2`, ... `$n` 表示传递给脚本或...
- Vi(Visual Editor)是Linux中最常用的文本编辑器之一,具有全屏幕编辑和命令模式两种操作方式。 - 在命令模式下,你可以通过键入命令来移动光标、删除文本、复制和粘贴等。 - 转换到插入模式(Insert mode),...
- Bash(Bourne-Again SHell)是 Unix 和 Linux 系统中最常用的 Shell 类型之一。 - Bash 提供了丰富的功能,支持变量、数组、条件判断、循环等结构化编程特性。 **2. Bash Shell 脚本基础语法** - **脚本的第一...
Linux命令是Linux操作系统中进行系统管理、文件操作和任务执行的基本工具。这个“Linux命令集合-手册”包含了一份详尽的Linux命令大全,是开发者和学习者的宝贵资源。以下是手册中可能涵盖的一些重要知识点: 1. **...
这篇“Linux常用命令之Bash入门指南”旨在帮助初学者掌握Bash的基本用法和常用命令,从而更好地理解和操作Linux系统。以下是关于Bash的一些关键知识点: 1. **Bash shell介绍**:Bash是GNU项目的一个部分,它是Unix...
在脚本中,可以使用控制结构如`if`、`for`和`while`循环,以及函数定义。例如,下面的脚本检查一个目录下是否存在特定文件: ```bash #!/bin/bash dir="/path/to/directory" filename="example.txt" if [ -f "$dir/...
Bash 提供了许多循环分支控制命令,例如 `if`、`else`、`elif`、`fi`、`for`、`do`、`done`、`case`、`while`、`until`、`continue`、`break` 等。 交互式– Linux 终端登录后,即进入交互式的执行环境 -----------...
学会使用if-else语句、for循环、while循环和until循环来控制脚本的流程。 4. **函数与别名**:了解如何定义和调用Bash函数,以及创建别名以简化命令输入。这可以提高脚本的可读性和重用性。 5. **数组**:Bash从...
在Linux操作系统中,Bash(Bourne-Again SHell)是默认的命令行解释器,也是编写脚本的强大工具。对于系统管理员和开发者来说,掌握高级Bash脚本编程技巧是提高工作效率的关键。这份“高级Bash脚本编程指南”涵盖了...
这篇文档“linux常用命令之bash入门指南”旨在帮助初学者掌握Bash的基本用法和常用命令,从而更有效地在Linux环境中工作。 一、Bash简介 Bash是GNU项目的一部分,它是对早期的Unix Shell——Bourne Shell(sh)的一...
3. **循环**:Bash中的`for`和`while`循环用于重复执行任务。例如,`for i in {1..5}; do echo $i; done`会打印数字1到5。 4. **函数**:Bash脚本可以定义函数来封装可重用的代码段。`function my_func() { echo ...
**Bash**(Bourne Again SHell)是一种广泛使用的Unix shell和命令语言,由Brian Fox为GNU项目编写,作为Bourne shell的免费软件替代品。Bash不仅在Unix系统中常见,而且在Linux、Mac OS X以及许多其他类Unix操作...
脚本中可以使用各种控制结构,比如if语句、for循环、while循环和case语句等。这些控制结构能够根据不同的条件执行不同的命令序列。函数的使用则可以让脚本更加模块化,有利于代码的重用和维护。 在脚本编写的过程中...
在`while`循环中结合使用`sleep`命令,我们可以实现定时任务、延迟执行等功能。本文将深入探讨如何在`while`循环中使用`sleep`命令,并通过具体的代码示例进行讲解。 首先,`sleep`命令的基本用法是接收一个时间...
使用命令替换来产生for循环的[list] 10-7. 对于二进制文件的一个grep替换 10-8. 列出系统上的所有用户 10-9. 在目录的所有文件中查找源字串 10-10. 列出目录中所有的符号连接文件 10-11. 将目录中的符号连接文件名...