linux脚本格式for循环,Linux Shell脚本之for循环
for循环是编程语言中一种开界的循环语句,而循环语句[1] 由循环体及循环的终止条件两部分组成。
for 循环的基本格式
for 变量名 in 列表;do
循环体
done
执行机制:依次将列表中的元素赋值给“变量名” ; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束
列表生成方式:
直接给出列表
整数列表:{start..end}, $(seq [start [step]] end)
返回列表的命令:$(COMMAND)
使用glob通配符,如:*. sh
变量引用
for循环的一些例子
直接给出列表
for i in 1 2 3;do #写了一个变量 “i”,列表写了3个参数,
echo "$i" #打印一下i这个变量的值
done #for循环结束
执行结果
[root@CentOS7.3 bin]#bash -x for.sh #用bash -x来执行脚本,并查看过程
+ for i in 1 2 3
+ echo 1 #可以看到第一次赋值是1
1
+ for i in 1 2 3
+ echo 2 #第二次赋的值是2
2
+ for i in 1 2 3
+ echo 3 #第三次的值是3
3 #只有3个值所以循环了三次
[root@CentOS7.3 bin]#
2.整数型列表:计算100以内所有能被3整除的整数之和
sum=0 #先写一个变量sum并赋值0
for i in {1..100};do #变量名“i”,列表用{1..100}
if [[ $i%3 -eq 0 ]];then #用if判断“i”变量的值除以3的余数等不等于0
let sum+=i #如果余数等于0,“sum”的值就和“i”的值相加
fi #if判断结束
done #for循环结束
echo "100以内所有能被3整除的整数的和是$sum" #打印“sum”变量的值
unset sum i #删除变量
执行结果。由于过程比较长,所以忽略了一些过程
[root@CentOS7.3 bin]#bash -x for.sh #用bash -x来执行脚本,并查看过程
+ sum=0
+ for i in '{1..100}' #第一次循环
+ [[ 1%3 -eq 0 ]] #比对
+ for i in '{1..100}' #1除以3的有余数,所以直接进入第二次循环
+ [[ 2%3 -eq 0 ]]
+ for i in '{1..100}'
+ [[ 3%3 -eq 0 ]] #3除以3的余数等于0
+ let sum+=i #执行let
+ for i in '{1..100}'
+ [[ 4%3 -eq 0 ]]
+ for i in '{1..100}'
+ [[ 5%3 -eq 0 ]]
+ for i in '{1..100}'
+ [[ 6%3 -eq 0 ]]
+ let sum+=i
+ for i in '{1..100}'
+ [[ 7%3 -eq 0 ]]
+ for i in '{1..100}'
+ [[ 8%3 -eq 0 ]]
+ for i in '{1..100}'
+ [[ 9%3 -eq 0 ]]
+ let sum+=i
+ echo 100以内所有能被3整除的整数的和是1683 #打印结果
+ 100以内所有能被3整除的整数的和是1683
+ unset sum i #删除变量
注:{1..100}表示展开1到100
[root@CentOS7.3 app]#echo {1..10} #打印1dao10
1 2 3 4 5 6 7 8 9 10 #效果
3.命令的结果生成的列表:判断/etc目录下的文件的类型
for i in `ls /app/*`;do #如果要用命令生成列表要加反向单引号
if [ -f "$i" ] #判断$i的值是不是一个普通文件
then echo "$i 是一个普通文件" #是普通文件就标准输出到屏幕
sleep 0.5 #停顿0.5秒
elif [ -d "$i" ];then #判断$i的值是不是一个目录
echo "$i 是一个目录" #是目录就标准输出到屏幕
sleep 0.5 #停顿0.5秒
fi
done
执行结果
[root@CentOS7.3 app]#bash -x for.sh #用bash -x来执行脚本,并查看过程
++ ls /app/backup.sh /app/logbackup.sh /app/meminfo.sh
+ for i in '`ls /app/*`'
+ '[' -f /app/backup.sh ']'
+ echo '/app/backup.sh 是一个普通文件'
/app/backup.sh 是一个普通文件
+ sleep 0.5
+ for i in '`ls /app/*`'
+ '[' -f /app/logbackup.sh ']'
+ echo '/app/logbackup.sh 是一个普通文件'
/app/logbackup.sh 是一个普通文件
+ sleep 0.5
+ for i in '`ls /app/*`'
+ '[' -f /app/meminfo.sh ']'
+ echo '/app/meminfo.sh 是一个普通文件'
/app/meminfo.sh 是一个普通文件
+ sleep 0.5
4.使用通配符
for i in /ect*;do #用通配符
if [ -f "$i" ]
then echo "$i 是一个普通文件"
sleep 0.5
elif [ -d "$i" ];then
echo "$i 是一个目录"
sleep 0.5
fi
done
执行结果
[root@CentOS7.3 app]#bash -x for.sh
+ for i in '/etc/*'
+ for i in '`ls /app/*`'
+ '[' -f /app/backup.sh ']'
+ echo '/app/backup.sh 是一个普通文件'
/app/backup.sh 是一个普通文件
+ sleep 0.5
+ for i in '`ls /app/*`'
+ '[' -f /app/logbackup.sh ']'
+ echo '/app/logbackup.sh 是一个普通文件'
/app/logbackup.sh 是一个普通文件
+ sleep 0.5
+ for i in '`ls /app/*`'
+ '[' -f /app/meminfo.sh ']'
+ echo '/app/meminfo.sh 是一个普通文件'
/app/meminfo.sh 是一个普通文件
+ sleep 0.5
5.引用变量来生成列表
for i in "$@" ;do #用系统变量$@,建议如果要引用变量要加双引号
if [ -f "$i" ]
then echo "$i 是一个普通文件"
sleep 0.5
elif [ -d "$i" ];then
echo "$i 是一个目录"
sleep 0.5
fi
done
执行结果
[root@CentOS7.3 app]#bash -x /app/for.sh /boot #输入一个参数/boot
+ for i in '"$@"'
+ '[' -f /boot ']' #这里显示/boot,引用变量成功
+ '[' -d /boot ']'
+ echo '/boot 是一个目录'
/boot 是一个目录
+ sleep 0.5
注:$@是一个特殊变量,作用是传递给脚本或函数所有输入的参数。
linux脚本格式for循环,Linux Shell脚本之for循环相关推荐
- 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)
大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程. 目录 前言 一.Shell 脚本基础说明 1.1 什么是 Shell 脚本 1.2 Shell 脚本的 ...
- Linux配置脚本导出运行,linux服务器部署jar包以及shell脚本的书写
背景:记录在linux环境下部署jar程序的过程 1 部署过程记录 1.1 程序结构 这里的main函数就在DemRest2.java 文件中. 为了部署方便,要做到以下两点: 1 在导出的jar包中 ...
- linux 递归删除 空目录命令,使用shell脚本实现递归删除空目录
平时一般使用php脚本实现一些文件管理功能,总归没有shell脚本强大,虽然本人不会写shell脚本,但是读懂shell脚本还是没问题的.对于"递归删除空目录"这样简单的功能使用p ...
- linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式
主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...
- linux时间格式怎么写,linux基础--时间格式
在linux中,经常会使用各种时间格式,特别在shell脚本中会经常调用,默认的时间格式为[root@liang-study ~]# date Wed Dec 14 19:43:07 CST 2016 ...
- 怎么编写Linux脚本循环语句,shell脚本及常用循环语句
博文结构 什么是shell 简单编辑shell 循环语句 一.什么是shell及作用 Shell字面理解就是个"壳",是操作系统(内核)与用户之间的桥梁,充当命令解释器的作用,将用 ...
- linux循环条件,shell脚本编写 之 条件选择,条件判断,循环语句
1 概述 编写shell脚本,一般离不开条件选择,条件判断以及循环语句.掌握这三个语法,将大大提高脚本的编写效率,使得脚本编写更加灵活,完成X相对复杂的工作 2 条件选择if语句 if语句选择执行,逐 ...
- linux 循环小时,shell脚本日期遍历(按天按小时)
使用shell脚本遍历日期 1. 按天倒序遍历日期 ( 正序修改一下日期增减函数即可 ) #!/bin/bash #倒序按天遍历日期 #传入遍历的开始时间和结束时间 startdate="$ ...
- linux中脚本循环语句,Shell脚本循环语句
Shell作为一种脚本编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂.强大的功能.我们今天就来认识if.for.while.case语句的具体应用. 一.使用if语句结构 ...
- linux命令行开头是sh,shell脚本语言的使用(超全超详细)
1.shell的概述 shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又 ...
最新文章
- 使用Python+OpenCV+yolov5实现行人目标检测
- 技术道路独行16载,他总结了CTO的五大自我修炼法则!
- [SPOJ705]不同的子串
- mysqlbinlog_flashback工具体验
- java getresourceasstream null_java踩坑记-getResourceAsStream
- JAVA数据结构与算法【稀疏数组】
- 简易版的等待/唤醒方法(sleep,wait,await,park区别)适合面试回答
- 时序约束系列之D触发器原理和FPGA时序结构
- 2022.1.25 Python可视化实战:这些医院离司机究竟有多远?
- python三维图形等高线_python等高线
- Firefox插件的安装及使用方法(持续更新中)
- 安然公司特殊目的实体(SPEs)解读
- Reincarnation
- 蓝桥杯——罗马数字转换器
- 计算机科学与技术单身率,中国大陆男女比例揭晓!大学单身率专业十强来了
- iphone11各机型对比_9款旗舰系统对比 iPhone 11居然不是最好用的
- C#获取同花顺,问财V(hexin-v)值
- Borel measurability
- 【自嗨笔记#1】微博疫情舆情分析---信息爬取部分
- 并行流parallel 和 parallelStream
热门文章
- MasterCAM 车铣复合编程加工视频教程
- python json.loads_Python:json.loads返回前缀为'u'的项目
- ConcurrentHashMap详解
- 解决在putty下,vim powerline箭头显示乱码的问题
- Java游戏服务器开发之二--导航帖
- C/C++ Linux 后台服务器开发高级架构师学习知识路(架构师篇)
- HTML5游戏开发(十)
- 虫术python绝技下载_《虫术——Python绝技》梁睿坤著【摘要 书评 在线阅读】-苏宁易购图书...
- SEOer淘宝电商网站店铺优化使用的神奇工具
- 以太坊:RLP编码,Recursive Length Prefix