当前位置: 首页 > news >正文

【shell 基础(11)循环之for】带列表:空格子串、换行子串、展开、命令替换、seq;不带列表:接受参数、类C

文章目录

  • 一. 带列表的for循环
    • 1. 语法
    • 2. 例子
      • 2.1. 循环字串
      • 2.2. 展开或命令替换:数字循环
      • 2.3 命令替换(输出换行)作为list
  • 二. 其他for循环
    • 1. 不带列表的循环
    • 2. 类C的for循环

一. 带列表的for循环

1. 语法

for var in list  do commanddone

注意:list可以是含有空格或者是换行的字串。

  • 换行:则可以读取遍历一个文件;或者命令输出时,带有换行
  • 空格:则可以构成一个数组,或者就是字串

 

2. 例子

2.1. 循环字串

# bash for_test.sh 
this is apple
this is orange
this is banana# cat for_test.sh 
#!/bin/bash
fruits="apple orange banana"
for fruit in ${fruits}
doecho "this is ${fruit}"
done

 

2.2. 展开或命令替换:数字循环

连续数字相加

cat for_test.sh 
#!/bin/bash
# 1. 使用展开
#for num in {1..5}
sum=0
# 2. 使用命令替换
for num in $(seq 1 100)
dolet "sum+=num"
done
echo $sum

 

从1开始步长为2计算和,即计算1到100的奇数和

# cat for_test.sh 
#!/bin/bash
sum=0
for num in $(seq 1 2 100)
dolet "sum+=num"
done
echo $sum

 

2.3 命令替换(输出换行)作为list

[ test ] # cat for_test.sh 
#!/bin/bash
for ls_name in $(ls)
dols -l ${ls_name}
done
[ test ]# bash for_test.sh 
-rw-r--r-- 1 root hadoop 0 Oct 13 12:35 11
-rw-r--r-- 1 root hadoop 60 Oct 13 12:36 for_test.sh

 

二. 其他for循环

1. 不带列表的循环

通过参数的方式给for传递变量值

[root@ test]# bash for_test.sh 1 2 3 4
the var is 1
the var is 2
the var is 3
the var is 4[root@ test]# cat for_test.sh 
#!/bin/bash
for var in $@
doecho the var is $var
done

 

2. 类C的for循环

[root@ test]# bash for_test.sh 
5050[root@ test]# cat for_test.sh 
#!/bin/bash
sum=0
for (( i=1; i<=100; i++ ))
dolet "sum+=i"
done
echo $sum
http://www.lryc.cn/news/45710.html

相关文章:

  • 虚拟环境中创建Django项目 详细完整
  • BCSP-玄子JAVA开发之JAVA数据库编程CH-08_JDBC
  • 一位程序员将一款开源工具变成了价值75亿美元的帝国
  • tmux | 终端操作软件,解决深度学习中终端相关问题
  • 信号 捕捉
  • sqlserver中判断是否存在的方法
  • 基于Kettle跑批的案例说明
  • 2023 最新版网络安全保姆级自学指南
  • Chapter9.3:线性系统稳定性分析及综合实例
  • EXCEL 在复杂查询时摒弃vlookup() sumif() 等公式,而使用数据透视表的初步学习
  • C 文件读写
  • Linux中实现程序开机自启——将程序配置为系统服务
  • 【洛谷刷题】蓝桥杯专题突破-广度优先搜索-bfs(13)
  • 【新2023Q2模拟题JAVA】华为OD机试 - 总最快检测效率 or 核酸检测效率
  • 基于主成分分析的混音方法
  • Code Two Exchange Crack
  • jQuery.form.js 详细用法_维护老项目使用
  • 【Java】关于你不知道的Java大整数运算之BigInteger类超级好用!!!
  • 运维是不是没有出路了?
  • 【C++笔试强训】第七天
  • mysql binlog 一直追加写,磁盘满了怎么办?
  • 缓存穿透、缓存雪崩、缓存击穿解决方案
  • web + servlet + jdbc mysql 实现简单的表单管理界面
  • Maven 国内镜像仓库
  • day21 ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
  • 大学计算机(软件类)专业推荐竞赛 / 证书 官网及赛事相关信息整理
  • Metasploit入门到高级【第九章】
  • JDK之8后: 协程? 虚拟线程!!!
  • 体验 jeecg
  • 投稿指南【NO.13】计算机学会CCF推荐期刊和会议分享(人工智能)