当前位置:网站首页>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"
边栏推荐
- 【TypeScript】Why choose TypeScript?
- MySQL - 2059 - Authentication plugin ‘caching_sha2_password‘ cannot be loaded
- What is the ERC20 token standard?
- SmobilerService 推送实现
- 【LeetCode—第2题 两数之和 代码详解 】附有源码,可直接复制
- 什么是bin文件?「建议收藏」
- The way of programmer architecture practice: how to design a sustainable evolution system architecture?
- 永寿 永寿农特产品-苹果
- dataset数据集有哪些_数据集类型
- 深度学习:文本CNN-textcnn
猜你喜欢

基于PHP7.2+MySQL5.7的回收租凭系统

Babbitt | Metaverse daily must-read: Players leave, platforms are shut down, and the digital collection market is gradually cooling down. Where is the future of the industry?...

Activiti产生的背景和作用

劝退背后。

Classical Architecture and Memory Classification of Embedded Software Components

Matlab学习12-图像处理之图像增强

用于发票处理的 DocuWare,摆脱纸张和数据输入的束缚,自动处理所有收到的发票

MySQL - 2059 - Authentication plugin ‘caching_sha2_password‘ cannot be loaded
![[Bubble sort and odd-even sorting]](/img/89/d63afe1900a05b2a5615fcc3c09ccb.png)
[Bubble sort and odd-even sorting]

CADEditorX ActiveX 14.1.X
随机推荐
小身材有大作用——光模块寿命分析(二)
什么是bin文件?「建议收藏」
ERC20通证标准是什么?
GET 和 POST 有什么区别?
使用.NET简单实现一个Redis的高性能克隆版(一)
[Bubble sort and odd-even sorting]
【一起学Rust】Rust包管理工具Cargo初步了解
什么是Weex
面试官:SOA 和微服务的区别?这回终于搞清楚了!
【冒泡排序以及奇数偶数排列】
一文带你弄懂 CDN 技术的原理
【文件IO的简单实现】
opencv学习—VideoCapture 类基础知识「建议收藏」
记住用户名案例(js)
用于发票处理的 DocuWare,摆脱纸张和数据输入的束缚,自动处理所有收到的发票
MySQL - 2059 - Authentication plugin ‘caching_sha2_password‘ cannot be loaded
进程内存
机器比人更需要通证
技术总监需要会些什么?也太难了!
Matlab学习11-图像处理之图像变换