shell 编程 for 循环详解及应用实例
与其他编程语言类似,Shell支持for循环。
for循环一般格式为:
for 变量 in 列表
do
command1
command2
...
commandN
done
列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。
in 列表是可选的,如果不用它,for 循环使用命令行的位置参数。
例如, 顺序输出当前列表中的数字:
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
运行结果:
The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5
顺序输出字符串中的字符:
for str in 'This is a string'
do
echo $str
done
运行结果:
This is a string
显示主目录下以 .bash 开头的文件:
#!/bin/bash
for FILE in $HOME/.bash*
do
echo $FILE
done
运行结果:
/root/.bash_history
/root/.bash_logout
/root/.bash_profile
/root/.bashrc
应用实例:
第一类:数字性循环
-----------------------------
for1-1.sh
#!/bin/bash
for((i=1;i<=10;i++));
do
echo $(expr $i \* 3 + 1);
done
expr命令可以实现数值运算、数值或字符串比较、字符串匹配、字符串提取、字符串长度计算等功能
\ 在这里表示转义 进行乘法运算 *
biao@ubuntu:~/test/shell_for$ ./test.sh
4
7
10
13
16
19
22
25
28
31
-----------------------------
for1-2.sh
#!/bin/bash
for i in $(seq 1 10)
do
echo $(expr $i \* 3 + 1);
done
-----------------------------
for1-3.sh
#!/bin/bash
for i in {1..10}
do
echo $(expr $i \* 3 + 1);
done
-----------------------------
for1-4.sh
#!/bin/bash
awk 'BEGIN{for(i=1; i<=10; i++) print i}'
awk是一个强大的文本分析工具,awk经常用在文本文件的处理以及生成报表,主要进行流控制、数学运算、进程控制、内置的变量和函数、循环和判断
第二类:字符性循环
-----------------------------
for2-1.sh
#!/bin/bash
for i in `ls`;
do
echo $i is file name\! ;
done
-----------------------------
运行结果为:
biao@ubuntu:~/test/shell_for$ touch a b c d
biao@ubuntu:~/test/shell_for$ ls
a b c d test.sh
biao@ubuntu:~/test/shell_for$ ./test.sh
a is file name!
b is file name!
c is file name!
d is file name!
test.sh is file name!
biao@ubuntu:~/test/shell_for$
for2-2.sh
#!/bin/bash
for i in $* ;
do
echo $i is input chart\! ;
done
-----------------------------
for2-3.sh
#!/bin/bash
for i in f1 f2 f3 ;
do
echo $i is appoint ;
done
-----------------------------
for2-4.sh
#!/bin/bash
list="rootfs usr data data2"
for i in $list;
do
echo $i is appoint ;
done
第三类:路径查找
-----------------------------
for3-1.sh
#!/bin/bash
for file in ./*;
do
echo $file is file path \! ;
done
运行结果为:
biao@ubuntu:~/test/shell_for$ ls
a b c d test.sh
biao@ubuntu:~/test/shell_for$ ./test.sh
./a is file path !
./b is file path !
./c is file path !
./d is file path !
./test.sh is file path !
biao@ubuntu:~/test/shell_for$
-----------------------------
for3-2.sh
#!/bin/bash
for file in $(ls *.sh)
do
echo $file is file path \! ;
done
shell 编程 for 循环详解及应用实例相关推荐
- shell 四种循环详解
shell脚本中,for循环很重要,对一系列值进行迭代时非常有用.Bash中提供了多种类型的循环. 面向列表的for循环 个人理解这个是shell 最基本的循环,面向列表在集合中查找处理 for va ...
- Windows编程入门程序详解
Windows编程入门程序详解 1. 程序 /************************************************************************* ...
- Java编程配置思路详解
Java编程配置思路详解 SpringBoot虽然提供了很多优秀的starter帮助我们快速开发,可实际生产环境的特殊性,我们依然需要对默认整合配置做自定义操作,提高程序的可控性,虽然你配的不一定比官 ...
- pythonfor循环案例教程_python开发之for循环操作实例详解,pythonfor实例详解
python开发之for循环操作实例详解,pythonfor实例详解 本文实例讲述了python开发之for循环操作.分享给大家供大家参考,具体如下: 下面是我做的一些学习记录供大家参考: #基本的f ...
- oracle分区表编程,Oracle分区表详解
当前位置:我的异常网» 编程 » Oracle分区表详解 Oracle分区表详解 www.myexceptions.net 网友分享于:2013-10-28 浏览:25次 Oracle分区表详解 ...
- shell编程之循环语句
shell编程之循环语句 文章目录 shell编程之循环语句 一.for循环语句 1. for循环语法结构 ㈠ 列表循环 2. 应用案例 二.while循环语句 1. while循环语法结构 2. 应 ...
- linux中until循环的特点,Bash 中的 until 循环详解
Bash 中的 until 循环详解 循环是编程语言的基本概念之一.当你想要一遍又一遍地运行一系列命令直到达到某个条件后终止退出时,循环很方便. 在诸如 Bash 之类的脚本语言中,循环对于自动执行重 ...
- java 可见性_Java并发编程-volatile可见性详解
前言 要学习好Java的多线程,就一定得对volatile关键字的作用机制了熟于胸.最近博主看了大量关于volatile的相关博客,对其有了一点初步的理解和认识,下面通过自己的话叙述整理一遍. 有什么 ...
- Linux文件解hgc,Linux shell I/O重定向详解
I/O重定向详解及应用实例 1. 基本概念(这是理解后面的知识的前提,请务必理解) a. I/O重定向通常与 FD有关,shell的FD通常为10个,即 0-9: b. 常用FD有3个,为0(stdi ...
最新文章
- js 刷新页面但是不闪烁_前端开发还在手动刷新页面?手把手教你搭建一个自动刷新工具...
- 数据中台解决的三大问题
- 如何启用SAP C4C OData Event Notification
- 分享30个新鲜PSD网站模板免费下载
- mysql 读取data文件_利用mysql的LOAD DATA INFILE的功能读取客户端文件
- Hadoop生态圈-Zookeeper的工作原理分析
- 2019年开发者必读!20位阿里技术大牛们帮你列了一份经典书单!...
- java自行车s码适合身高_捷安特s码适合多高
- 由BNF解释如何用递归表示循环
- android缓存bilibili,bilibili缓存姬
- linux下修改yml脚本文件编码,Spring Boot 装载自定义yml文件
- eclipse保存后不会自动编译
- 谷歌浏览器崩溃,无法搜索
- usaco-5.1-fc-passed
- Object Detection with Discriminatively Trained Part Based Models(使用判别训练的部件模型进行目标检测 )
- (转)关于样本标准差(SD)与样本标准误差(SE)
- vscode之plantUML流程图
- 依那西普血清水平与强直性脊柱炎患者疗效无相关性
- 计算机网络---介质访问控制
- 计算机专业网络工程师英语作文,网络工程师自我介绍英文
热门文章
- 肠道核心菌属——经黏液真杆菌属(Blautia),炎症肥胖相关的潜力菌
- 每个孩子都是一朵独一无二的风信子(轉載,不知何處)
- 离心泵水力设计——叶轮设计——8 叶片加厚
- linux下.run文件的安装与卸载
- 各种颜色发光二极管的工作电压
- 解决“System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本”的问题
- android博客导航总结,以及个人常用android免费学习干货(文章,视频,矢量图,字体等)资源分享?
- Mysql on duplicate key update用法及优缺点
- CSDN RSS客户端订阅说明
- 飞思卡尔XS128的基本模板程序