当前位置:网站首页>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"
边栏推荐
- complete knapsack problem
- 下午见!2022京东云数据库新品发布会
- 笔试题:金额拆分
- 【一起学Rust】Rust包管理工具Cargo初步了解
- 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!...
- Realize 2d characters move left and right while jumping
- 【MySQL】数据库进阶之索引内容详解(上篇 索引分类与操作)
- 【MySQL功法】第4话 · 和kiko一起探索MySQL中的运算符
- html+css+php+mysql实现注册+登录+修改密码(附完整代码)
- 小身材有大作用——光模块基础知识(一)
猜你喜欢

MySQL - 2059 - Authentication plugin ‘caching_sha2_password‘ cannot be loaded

机器学习(第一章)—— 特征工程

本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现

【MySQL功法】第2话 · 数据库与数据表的基本操作

码率vs.分辨率,哪一个更重要?

Why is the new earth blurred, in-depth analysis of white balls, viewing pictures, and downloading problems

本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现

How to use outside the PHP command in the container

距LiveVideoStackCon 2022 上海站开幕还有3天!

fast planner中拓扑路径搜索
随机推荐
VRRP协议的作用及VRRP+OSPF配置方法
【多线程的相关内容】
dataset数据集有哪些_数据集类型
Redis发布订阅和数据类型
viewstub 的详细用法_pageinfo用法
基于PHP7.2+MySQL5.7的回收租凭系统
云原生 Dev0ps 实践
ThreadLocal源码解析及使用场景
For invoice processing DocuWare, cast off the yoke of the paper and data input, automatic processing all the invoice received
LP流动性挖矿DAPP系统开发丨流动性挖矿功能原理及说明
Why is the new earth blurred, in-depth analysis of white balls, viewing pictures, and downloading problems
码率vs.分辨率,哪一个更重要?
LeetCode-1796. 字符串中第二大的数字
LeetCode刷题笔记:622.设计循环队列
LeetCode 899 Ordered queue [lexicographical order] HERODING's LeetCode road
LyScript 实现对内存堆栈扫描
Analysis of the idea of the complete knapsack problem
【一起学Rust 基础篇】Rust基础——变量和数据类型
使用.NET简单实现一个Redis的高性能克隆版(一)
笔试题:金额拆分