Linux Shell:Shell循环语句

Linux Shell:Shell循环语句,第1张

摘要: Linux , Shell

Shell中常用循环有 for , while

for循环只能用于 固定次数 的循环,因此不能无限循环和用于一些在后台守护进程一直运行的程序,语法语句如下

也可以写成一行,用 ; 分隔

取值列表内元素以空格隔开,如果元素带有空格则用引号包裹起来,例子如下

输出如下,可见循环到最后退出循环,引用变量依旧是最后一个取值列表元素

一行的写法

Shell的for循环也可以采用C语言的写法,注意是 双括号 ,用 分号; 间隔

一个简单例子

while循环语句结合条件测试使用,语法如下

举一个例子

在循环中使用条件测试实现复杂的逻辑,例如

也可以使用&&,||一行完成,省去if,fi

Shell的continue,break语句和Python一样,例子如下

break语句下输出4

continue语句下输出4 6 7 8 9 10

常见结合使用的循环体有 序列 , 数组 , 命令行传参 , 文件目录和文件

序列通过 seq 命令或者 {begin..end..step} 符号进行定义:

结合for循环使用案例

在Shell中使用小括号 () 定义数组,数组遍历使用 [@] 符号,防止元素有空格用双引号包起来,,例子如下

命令行传参遍历使用固定符号 $@ ,如果参数中有空格,用双引号括起来,例子如下

文件遍历使用 ls 命令,可以指定目录,以及通配符匹配

一个双重循环实现,注意 expr表达式中乘号要加转移符

(2)将某目录下大小大于阈值的文件移动到另一个文件

遍历循环一个目录,使用awk语法获得文件大小,将100m以上的文件移动到另一个文件夹

(2)指定开始日期和结束日期完成一个跑批任务

指定一个开始时间和结束时间,while从开始日期一直自增到结束日期循环结束,通过 date -d '2021-01-01 1day' +%Y-%m-%d 自增一天

你好,设置方法如下:

修改 Error log 设备的缓冲区大小

Error log 设备 /dev/error 为块设备,需要使用缓冲区进行读写。缺省情况下,/dev/error 的缓冲区大小为 8KB,我们可以通过 /usr/lib/errdemon – B 来配置 /dev/error 的缓冲区大小。如果新配置的缓冲区大小大于现有的配置,新配置将会立即生效;如果新配置的缓冲区大小小于现有的配置,则新配置会在 errdemon 重新启动后生效。

配置日志文件路径

缺省情况下,AIX Error log 会使用文件 /var/adm/ras/errlog 存储日志信息,使用 /usr/lib/errdemon – i 可以配置 Error log 日志文件的路径。新配置的日志文件路径会立即生效。

配置日志文件大小限制

AIX Error log 的日志文件大小是可配置的,配置命令为 /usr/lib/errdemon – s。如果新配置的日志文件大小大于现有的配置,新配置将会立即生效;如果新配置的日志文件大小小于现有的配置,则现有的日志文件将会被备份为 *.log,然后 errdemon 会用新的日志文件大小配置生成一个新的日志文件。

配置对重复条目的处理

如果 *** 作系统或者应用程序发生了重复的信息或者错误,在 Error log 中就会造成重复的条目。AIX Error log 对重复的条目会进行相应的处理,如在一定时间内内容相同的条目将会被标记为重复,如果重复的条目数超过了预先设置的阈值,则新的重复的条目将不会再作为重复条目被记入 Error log。是否打开重复条目处理功能的配置参数为 /usr/lib/errdemon – d,重复条目的时间间隔配置参数为 /usr/lib/errdemon – t,最大重复条目数的配置参数为 /usr/lib/errdemon – m。

Linux下使用while…do done语句来写循环语句,其实也非常简单,比如说,我们要写一个循环5次的命令。

可以这样来写:

I=1

While [$I<=5]do

语句…

Done

I=$(($I+1))

其中,I=$(($I+1))说明我们这个循环每次递增的数为1,也就是在I的基础上加1,这样就形成了循环了。

====================================

脚本1:

#!/bin/sh

for loop in 1 2 3 4 5

do

echo $loop

done

脚本2:

#!/bin/sh

for loop in "orange red blue grey"

do

echo $loop

done

有了""就是字符串,只循环一次

第二个循环的循环变量会依次为orange red blue grey中的每一个。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7476283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存