当前位置:网站首页>bash for循环
bash for循环
2022-08-03 11:34:00 【小青头】
bash for循环
在bash脚本中,我们可以使用for循环去遍历一组元素,也可以使用for循环去遍历命令执行的结果,或者直接使用for循环遍历数字,得到索引。
for循环事先提供一个元素列表,而后,使用元素去遍历此元素列表;每访问一个元素,就执行一次循环体直至元素遍历完毕
for循环格式
格式如下
for VAR_NAME in 元素1 元素2 ...
do
语句1
语句2
....
done
for循环列表生成方法
1.逐个给出元素
2.通配符
示例1:for循环后直接给出元素
直接将路径当做字符串处理
显示/etc/inittab, /etc/rc.d/rc.sysinit, /etc/fstab三个文件各有多少行:
for FileName in /etc/inittab /etc/rc.d /etc/fstab ; do
wc -l $FileName
done
使用for循环修改目录/tmp/1.dir, /tmp/2.dir和/tmp/3.dir的最近一 次修改时间为2010年3月3号3点3分3秒:
for FileName in /tmp/1.dir /tmp/2.dir /tmp/3.dir ; do
touch -m -t 2010030303.03 $FileName
done
查看mtime修改时间:stat /tmp/1.dir
使用for循环统计/etc/fstab、/etc/rc.d/rc.sysinit、 /etc/inittab文件中各 自以#开头的行的行数和空白行数:
#!/bin/bash
count=0
for FileName in /etc/fstab /etc/rc.d/rc.sysinit /etc/inittab; do
num=$(egrep "^#|^$" $FileName | wc -l)
count=$(($count+$num))
done
echo "count : "$count
使用for循环分别将/proc/cpuinfo、/proc/meminfo、 /proc/uptime三个文件中 的所有小写字符显示为大写:
#!/bin/bash
for FileName in /proc/{cpuinfo,meminfo,uptime};do
tr 'a-z' 'A-Z' < $FileName
done
示例2:for循环接通配符
查看/var目录下所有文件的属性
for File in /var/*;do
file $File
done
示例3:for循环接数字
直接给出数字
显示/etc/passwd文件中第1、3、6、12个用户的用户名、ID和shell:
for Row in 1 3 6 12;do
cat -$Row /etc/passwd | tail -1 | cut -d: -f1,3,7
done
示例3.2:for循环接数字,使用{}生成数字
{}; {起始数字…结束数字}
for i in {1..100};do
echo $i
done
示例3.3:for循环接数字,使用seq生成数字
seq 第一个数字 最后一个数字 数字间隔
例如:
seq 6 生成1 2 3 4 5 6
seq 3 5 生成 3 4 5
seq 3 2 5 生成3 5
写一个计算100以内所有偶数和的脚本
sum=0
for i in `seq 2 2 100`;do
sum=$[$sum+$i]
done
示例4:for循环遍历命令结果
命令执行的结果其实也是字符串,和遍历字符串类似
current_line=0
for Line in `cat /etc/passwd`;do
echo "$current_line..$Line"
current_line=$[$current_line+1]
done
示例5:C风格的for循环
sum=0
for ((i=0;i <=100;i++));do
let sum+=i
done
echo "Sum of 0 to 100 is $sum"
边栏推荐
- 2022年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多
- The effects of the background and the Activiti
- 直播弱网优化
- What is a smart contract?
- 数据库一席谈:打造开源的数据生态,支撑产业数字化浪潮
- LeetCode 899 Ordered queue [lexicographical order] HERODING's LeetCode road
- ThreadLocal源码解析及使用场景
- 云原生 Dev0ps 实践
- build --repot
- Analysis of the idea of the complete knapsack problem
猜你喜欢
Cross-chain bridge protocol Nomad suffers hacker attack, losing more than $150 million
GET 和 POST 有什么区别?
"Global Digital Economy Conference" landed in N World, Rongyun provides communication cloud service support
Android 技术面试准备(含面试题及答案)
优维低代码:Provider 构件
2022年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多
用于发票处理的 DocuWare,摆脱纸张和数据输入的束缚,自动处理所有收到的发票
一个扛住 100 亿次请求的红包系统,写得太好了!!
[Bubble sort and odd-even sorting]
How to retrieve IDC research reports?
随机推荐
用于发票处理的 DocuWare,摆脱纸张和数据输入的束缚,自动处理所有收到的发票
最牛逼的集群监控系统,它始终位列第一!
微信小程序获取用户手机号码
【二分查找详解外加递归写法】附有全部代码
[Explanation of JDBC and inner classes]
通过组策略安装软件和删除用户配置文件
技术总监需要会些什么?也太难了!
FR9811S6 SOT-23-6 23V,2A同步降压DC/DC转换器
Simple implementation of a high-performance clone of Redis using .NET (1)
fast planner中拓扑路径搜索
[论文阅读] (23)恶意代码作者溯源(去匿名化)经典论文阅读:二进制和源代码对比
优维低代码:Provider 构件
零信任的基本概念【新航海】
The effects of the background and the Activiti
Cross-chain bridge protocol Nomad suffers hacker attack, losing more than $150 million
"Global Digital Economy Conference" landed in N World, Rongyun provides communication cloud service support
LeetCode-1796. 字符串中第二大的数字
请问应该用什么关键字将内容主题设置为 dark 呢
零信任架构分析【扬帆】
Skills required to be a good architect: How to draw a system architecture that everyone will love?What's the secret?Come and open this article to see it!...