我使用过的Linux命令之while - Bash中的While循环

我使用过的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命令系列总目录

 

LaTeX盒子进阶玩法:用` aisebox`和` ule`制作自定义数学符号与装饰线 本文深入探讨LaTeX中`\raisebox`和`\rule`命令的高级应用,帮助用户创建自定义数学符号和装饰线。通过精确控制盒子的高度、深度和宽度,实现专业级的公式排版和文档美化,提升学术论文和技术文档的视觉效果。 阅读详情

相关推荐

Tesseral 建立地震模型

0. 前言 本节内容主要是总结如何使用 Tesseral 工具建立模型。 1. 模型建立步骤 设置模型的宽度和深度 此处默认都为1000,之后点击“确定” 建立地层 绘制新的地层 右键点击“New polygon” 绘制地层,设置第二个层的名字和纵波速度 绘制第三层,第三层覆盖在前一个层上 第四层如上,第四层如果是最后一层,绘制该层时,要将深度1000包围。 设置观测系统 设置炮点 设置子波为雷克子波,频率设置为30 检波点设置 运行模型 设置好如上选择后,

weixin_41857483的博客 6539

玩转Bash脚本:循环结构之while循环

和其他语言一样Bash的循环结构中也有while语句。它的基本结构为 while 条件;do 循环体;done 和其他语言不同的是,bash脚本中的while条件很丰富,可以是方括号[]就像if那样的条件,也可以是终端的命令作为条件。bash的死循环结构十分简洁不用while(1)不用while(true),只要while :。此外bash的while还能和重定向符号>和<联用。怎么样,有趣吧。

果冻虾仁 12万+

SAP S/4HANA 物料分类账(ML)/实际成本核算(Actual Costing)——底表全景 & CKMLCP 执行后数据变化

插入 ML 重估凭证行项目:Dr/Cr 库存科目(期末库存调整)、Dr/Cr COGS/消耗科目(消耗重估)、Cr/Dr ML 重估抵消科目(PRY/PRV 类逻辑)also STPRS/VERPR/PEINH/LBKUM 等(但 S/4 很多“真理”在 ACDOCA)MLPP / MLPPF / MLCR / MLCRF / MLCD / CKMLMV003/004 等。Material Ledger Document(行项目明细:收货/发票价差/结算写入/重估相关)间接(PUP在CKMLCR;

weixin_52203666的博客 577

Bash脚本-While循环以及并行执行脚本。

需要同时打开二个窗口即gnome-terminal并且同时执行二个fio脚本;当在执行fio脚本过程中,发现“link up”错误,发出报警声。FIO(Flexible I/O Tester)是一个用于测试磁盘、文件系统、块设备和网络设备性能的工具。它可以模拟不同类型的I/O负载,包括随机或顺序读写、混合读写、随机或顺序访问等。FIO提供了丰富的选项和参数,可以对测试进行高度定制化配置,以满足各种应用场景和需求。FIO是开源软件,可在Linux、Unix、Windows等多种平台上运行。

qq_19070591的博客 2238

飞书云文档API操作详细介绍

开通云文档API、python程序调用飞书api、飞书获取app_id和app_secret、

Brother_ning的博客 1万+

[QMT和ptrade量化交易小白入门]-112、小市值热点概念交易策略,回测5年20倍

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1078

bash while循环_Linux Bash While循环教程和示例

bash while循环Linux bash provides a lot of mechanisms to make the system administrator’s life easier. These features are similar to the programming language features like variables, decisions, loops, et...

cunjiu9486的博客 2177

基于 DnLUT 超高效的彩色图像去噪(CVPR 2025),本地部署 DnLUT 模型,图像去噪算法训练和推理,全网最详细教程

基于 DnLUT 超高效的彩色图像去噪(CVPR 2025),本地部署 DnLUT 模型,图像去噪算法训练和推理,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 363

Linux bash shell的循环命令for、while和until

bash shell的循环命令for、while和until命令说明

打工人的学习记录! 1202

微信小程序 - 引入并使用 Fly.js 请求库(超级详细的教程及运行示例)提供 Fly.js 源码源文件下载,贴心的配置示例及注释,优雅快速的发起 http 网络请求

fly.js请求库官方教程文档,微信小程序封装fly.js请求,在小程序/mpvue中使用flyio发起网络请求的方法,微信小程序中如何使用flyio封装网络请求,微信小程序中如何使用flyio封装网络请求,最好的教程,fly最好的文档教程,微信小程序使用fly接口请求框架,引入fly.js报错,微信小程序中如何使用flyio封装网络请求,微信小程序引入Fly.js请求库,如何在fly中配置请求/响应拦截器,如何在微信小程序中优雅地发送异步请求,请求/响应拦截器,微信小程序-引入并使用F

🏆 前端领域优质创作者 5608

【大语言模型 14】Transformer权重初始化策略:从Xavier到GPT的参数初始化演进之路

权重初始化是深度学习训练成功的隐秘基石,特别是在Transformer这样的深层架构中,合适的初始化策略能够决定模型的训练稳定性和收敛速度。本文从经典的Xavier和He初始化出发,深入解析Transformer特有的初始化策略,通过数学推导、代码实现和实验分析,揭示不同初始化方法对大语言模型训练的深层影响。我们将探讨为什么GPT系列模型采用特定的初始化方案,以及如何针对不同层设计最优的初始化策略。

熵数实验室 1686

linux until用法,Bash技巧:详解 while 和 until 循环命令的用法

在 Linux 的 Bash shell 中,while 复合命令 (compound command) 和 until 复合命令都可以用于循环执行指定的语句,直到遇到 false 为止。查看 man bash 里面对 while 和 until 的说明如下:while list-1; do list-2; doneuntil list-1; do list-2; doneThe while co...

weixin_36102776的博客 966

ADS基础教程23 - 有限元电磁仿真(FEM)可视化操作

一、引言 二、FEM可视化操作流程1.打开可视化界面2.查看介质的网格3.设置网格颜色4.选择网格5.传感器选择6.编辑传感器7.选择频率8.动画 三、总结介绍了在ADS中如何进行FEM仿真场视图操作过程。

XZ_ZC的博客 1815

linux+while循环求和,我使用过的Linux命令之while - Bash中的While循环

用途说明while循环是Shell中常用的语法结构,它与其他编程语言中的while有些类似,只是写法有些不一样罢了。常用格式格式一while 条件;do语句done格式二 死循环while truedo语句done格式三 死循环while :do语句done格式四 死循环while [ 1 ]do语句done格式五 死循环while [ 0 ]do语句done使用示例示例一Bash代码 COUNT...

weixin_39580749的博客 758

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Linux命令之while - Bash中的While循环

Linux命令之while - Bash中的While循环   用途说明 while循环是Shell中常用的语法结构,它与其他编程语言中的while有些类似,只是写法有些不一样罢了。 常用格式 格式一 while 条件; do     语句 done 格式二 死循环 while true do     语句 d

chaoyuan899的专栏 1576

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

linux用while循环值丢失,我使用过的Linux命令之while - Bash中的While循环(转)

我使用过的Linux命令之while - Bash中的While循环用途说明while循环是Shell中常用的语法结构,它与其他编程语言中的while有些类似,只是写法有些不一样罢了。常用格式格式一while 条件;do语句done格式二 死循环while truedo语句done格式三 死循环while :do语句done格式四 死循环while [ 1 ]do语句done格式五 死循环whil...

weixin_29149577的博客 348

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

我使用过的Linux命令之while - Bash中的While循环(转)

为什么80%的码农都做不了架构师?>>> ...

weixin_34281537的博客 166

Linux设置while循环超时退出,离开while循环在Linux环境中的BASH脚本中执行下一个命令...

我希望你们一切顺利!我试图每隔一段时间轮询一次目录,直到数据完成进入目录,并且完成后,我想在Linux环境中使用bash脚本在目录上执行我的下一个任务。我无法访问inotify-tools。我测试这个过程的方法是通过键入以下到一个shell命令行:离开while循环在Linux环境中的BASH脚本中执行下一个命令while true; do touch /home/tmp/fun_temp/not...

weixin_29807507的博客 1438

asp命令执行语句】_Bash技巧:详解 while 和 until 循环命令的用法

在 Linux 的 Bash shell 中, while 复合命令 (compound command) 和 until 复合命令都可以用于循环执行指定的语句,直到遇到 false 为止。查看 man bash 里面对 while 和 until 的说明如下:while list-1; do list-2; doneuntil list-1; do list-2; doneThe while c...

weixin_30579759的博客 409

shell while 结束循环_Linux技巧:使用bash read命令实现一个简易shell(完整版)

在 Linux 上面,可以使用 bash 的 read 内置命令来读取用户输入。当在 while 循环中不断调用 read 命令,并打印一些提示字符,如 $、#、> 等,就可以不断接收用户输入,并执行一些自定义的命令,类似一个简易的 shell。下面主要是介绍 read 命令的常见用法,用来逐步实现一个简易的 shell 效果。read 命令介绍在 bash 中,read 内置命令可以读取用...

weixin_39527768的博客 1488

bash shell笔记——循环结构

本文主要介绍linux bash shell循环结构的基本使用

scd 516
上一篇: 我使用过的Linux命令之free - 显示内存的使用情况
下一篇: 我使用过的Linux命令之jobs - 显示当前终端关联的后台任务情况
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值