单行Bash无限while循环的语法
我在提出正确的分号和/或花括号组合时遇到麻烦。 我想这样做,但是作为命令行的单行代码:
while [ 1 ]
dofoosleep 2
done
#1楼
while true; do foo; sleep 2; done
顺便说一句,如果您在命令提示符下将其键入为多行(如您所显示),然后使用向上的箭头调用历史记录,则可以在一行上正确地标出它。
$ while true
> do
> echo "hello"
> sleep 2
> done
hello
hello
hello
^C
$ <arrow up> while true; do echo "hello"; sleep 2; done
#2楼
您可以使用分号来分隔语句:
$ while [ 1 ]; do foo; sleep 2; done
#3楼
也可以在while条件下使用sleep命令。 使单线看起来更干净恕我直言。
while sleep 2; do echo thinking; done
#4楼
冒号始终是“ true”:
while :; do foo; sleep 2; done
#5楼
您还可以使用until
命令:
until ((0)); do foo; sleep 2; done
请注意,与while
, until
测试条件的退出状态不为零while
, until
将在循环内执行命令。
使用while
循环:
while read i; do foo; sleep 2; done < /dev/urandom
使用for
循环:
for ((;;)); do foo; sleep 2; done
另一种使用until
:
until [ ]; do foo; sleep 2; done
#6楼
一个非常简单的无限循环.. :)
while true ; do continue ; done
如果您的问题是:
while true; do foo ; sleep 2 ; done
#7楼
为了观看过程简单,请使用watch
#8楼
您也可以尝试这样做。警告:您不应该这样做,但是由于问题是要求无限循环,这是您可以做到的。
while [[ 0 -ne 1 ]]; do echo "it's looping"; sleep 2; done
#9楼
如果您希望while循环在某些条件后停止,并且foo
命令在满足此条件时返回非零值,则可以使循环中断,如下所示:
while foo; do echo 'sleeping...'; sleep 5; done;
例如,如果foo
命令正在批量删除内容,则在没有要删除的内容时返回1。
如果您有一个自定义脚本,该脚本需要多次运行命令直到出现某种情况,则此方法很好用。 您编写的脚本在满足条件时以1
退出,并在应再次运行时以0
退出。
例如,假设您有一个python脚本batch_update.py
,它将更新数据库中的100行,如果有更多行要更新,则返回0
如果没有行,则返回1
。 以下命令将允许您一次更新行100,并在两次更新之间休眠5秒:
while batch_update.py; do echo 'sleeping...'; sleep 5; done;
#10楼
我喜欢只对WHILE语句使用分号,并且&&运算符使循环执行不只一件事...
所以我总是这样
while true ; do echo Launching Spaceship into orbit && sleep 5s && /usr/bin/launch-mechanism && echo Launching in T-5 && sleep 1s && echo T-4 && sleep 1s && echo T-3 && sleep 1s && echo T-2 && sleep 1s && echo T-1 && sleep 1s && echo liftoff ; done
#11楼
使用while
:
while true; do echo 'while'; sleep 2s; done
使用for
循环:
for ((;;)); do echo 'forloop'; sleep 2; done
使用Recursion
,(与上面略有不同,键盘中断不会停止它)
list(){ echo 'recursion'; sleep 2; list; } && list;
#12楼
如果我可以举两个实际的例子(有点“情感”)。
这会将所有以“ .jpg”结尾的文件的名称写入文件夹“ img”中:
for f in *; do if [ "${f#*.}" == 'jpg' ]; then echo $f; fi; done
这将删除它们:
for f in *; do if [ "${f#*.}" == 'jpg' ]; then rm -r $f; fi; done
只是想贡献。
单行Bash无限while循环的语法相关推荐
- linux bash shell for 循环使用简介
在Linux / UNIX操作系统下,如何使用bash for loop重复执行某些任务? 如何使用for语句设置无限循环? 如何使用三参数进行循环控制表达式? " for循环"是 ...
- 中查询一个文件夹下文件数量_如何在 Bash 中使用循环 | Linux 中国
使用循环和查找命令批量自动对多个文件进行一系列的操作.-- Seth Kenlon(作者) 人们希望学习批处理命令的一个普遍原因是要得到批处理强大的功能.如果你希望批量的对文件执行一些指令,构造一个可 ...
- Linux从入门到精通系列之SHELL编程循环语句语法及实例详解(forwhileuntil)
前言 Shell作为一种脚本编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂.强大的功能.我们今天就来认识for.while.case语句的具体应用. 插个小广告吧,虽然我 ...
- 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍
Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...
- MATLAB基础数组操作及循环语句语法简介
向量索引 1,(向量)数组创建与元素存取 >> v = [1,3,5,7,8]v =1 3 5 7 8 >> a = v(1),v(3) = 9a =1v =1 3 9 7 8 ...
- 浅谈for循环在语法设计上的必要性
简单完整的单层for循环依我的理解,就是一连串的if. 这些if所判断对象的和最后一步的操作对象都是同一个变量,而且这些if块所包含的代码块完全一样. 所以为了避免代码冗余,有了for循环这种语法结构 ...
- java while语句打印三角形_小猿圈Java循环嵌套语法的使用介绍
Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...
- 小数的十进制和二进数转换 “无限不循环”小数的IEEE 754表示
十进制 -> 二进制 将整数部分和小数部分分开处理 例:3.125(10) 其整数部分为11(2) 小数部分按照下面的步骤求解: 0.125 x 2 = 0.25 取0 0.250 x 2 = ...
- bash 脚本编写_如何在Bash中编写循环
bash 脚本编写 人们想要学习Unix shell的一个常见原因是释放批处理的功能. 如果要对多个文件执行某些操作,一种方法是构造一个遍历这些文件的命令. 在编程术语中,这称为执行控制,最常见的示例 ...
最新文章
- 融合了距离矢量和链路状态两种路由选择协议的优点
- 服务器用REG ECC内存的好处
- Elasticsearch master节点的作用以及脑裂现象
- 计算机网络最短路径路由选择,最短路径算法Dijkstra算法在路由选择中的应用.pdf...
- 笨笨工作室告别十月模拟赛
- 大数据分析 | 百年奥运往事知多少
- Android开发的四大组件
- cgroup学习(二)——cgroup框架结构
- paddle serving
- php无法加载ssh扩展,php的ssh2扩展正常安装,却无法连接目标主机
- 使用61850网关实现modbus和电力iec61850协议的转换
- Cups打印机驱动延迟Bug解决
- Win10系统无法安装geforce game ready driver?
- java门基础学习(五)
- Spire.XLS的使用
- AAAI2022行人重识别论文汇总
- [深入理解Android卷二 全文-第五章]深入理解PowerManagerService
- android ellipsize的使用
- GCN变体-graphSAGE
- 【40-系统性能压力测试基本概念-相关性能指标HPSTPSQPSRT-安装Jmeter教程-JMeter测试流程-线程组-取样器-监视器-测试商城首页-JMeter Address 占用的问题】