shell脚本之for循环语句_shell脚本if判断

shell脚本之for循环语句_shell脚本if判断循环有:for、while、until什么是for循环呢?for循环逻辑:就是将循环列表中的元素赋值给变量,每次赋值便执行一次循环,done就标志着一个循环的结束。直到列表中的元素消耗殆尽,结束整个循环(也可以这么理解,因为某件事,你把你对象惹生气了,你是不是得道歉,道歉一次没用,是不是要第二遍,这是一个循环直到你对象原谅你这个循环才结束.也可以这么理解)for变量in值1值2值3do相当于大括号的上上半部分echo语句程序done相当于大括号的下半部分

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

shell脚本之for循环

循环有:for、while、until

什么是for循环呢?

for循环逻辑 :就是将循环列表中的元素赋值给变量,每次赋值便执行一次循环,done就标志着一个循环的结束。直到列表中的元素消耗殆尽,结束整个循环(也可以这么理解 ,因为某件事 ,你把你对象惹生气了,你是不是得道歉 ,道歉一次没用,是不是要第二遍 ,这是一个循环 直到你对象原谅你 这个循环才结束.也可以这么理解)

格式 :

for 变量 in 值1 值2 值3

do 相当于大括号的上上半部分

echo 语句程序

done 相当于大括号的下半部分

把每个值都带入你的变量里面按个进入 然后输出等待集合

!在这里插入图片描述

应用实例 :1

第一种格式 $* 把所有的参数看成一个整体

第二种格式 $@ 表示把每个参数分区对待

在 数量大的时候可以看出来 ∗ 和 * 和 @的区别是什么

案例实验 :

$* 输出的是一个整体

vim textfor.sh

注释一下环境 #!/bin/bash

for i in “ ∗ ∗ ” 这 个 是 什 么 意 思 : 是 把 **” 这个是什么意思 :是把 :* * 赋给i 这个变量 把&*这个值交给i然后把他输出echo的东西 如果是一次 就输出一次 如果是分开的 那就是 多次对应的输出

do

echo “the num is $i”

done

chmod 744 或者+x textfor.sh 给一个执行权限

./textfor.sh 执行

$@ 分开输出

vim textfor.sh

注释一下环境 #!/bin/bash

for i in “$@”

do

echo”the num is $i”

done

chmod 744 或者+x textfor.sh 给一个执行权限

./textfor.sh 10 20 30 执行

分开处理的 要注意一下 ∗ 和 *和 @的区别是什么

$* 整体处理

$@ 分开处理

就比如 把10 20 30 的值的和求出来个数不知道 就要用$@比较便利

第二种基本语法

for(初始值;循环控制条件 ;变量变化)

do

程序

done

案例 从1加到100的值输出显示 1一直加到100

vim testfor2.sh 创建一个for的脚本

!/bin/bash

sum=0的时候 sum是和的意思

for((i=1;i<=100;i++)) 括号里是什么意思 i等于1 ;i<=100 意思是当i大于等于100时 ;i++ 的意思是 i++是使用i之后再加一
do
SUM= [ [ [SUM+$i] 括号里是一个累计 括号里的sum和i累计过后再给前面的sum再输出最后的结果 注意这边用的是中括号【】

done
echo “SUM=$SUM” 输出最后姐结果

~

chmod 744 或者+x textfor.sh 给一个执行权限

./testfor2.sh

2.3乘法表
利用for循环,打印99乘法表
#!/bin/bash
for ((i=1;i<=9;i++)) #此处也可以写 for i in {1…9}
do
for ((j=1;j<=i;j++)) #此处也可写 for j in seq $i
do echo -n -e “ j ∗ j* ji=$[j*i]\t” #-n不换行输出;-e使用\转义符;\t横向制表;若不用-e,则\t为普通字符
done
echo
done

三.总结
1.for循环在实际生成中应用非常多,避免人工重复的去操作某个事情
2.for循环中的列表支持正则表达式
3.for循环中使用(()),双括号内支持C语言的命令
4.for循环中的变量,只是循环去取值列表中取值,然后进行do操作,所以取值列表中的参数个数,决定了循环的次数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234609.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 进程间通信和线程间通信的区别_有些线程包含多个进程

    进程间通信和线程间通信的区别_有些线程包含多个进程进程间通信转自https://www.cnblogs.com/LUO77/p/5816326.html线程间通信https://www.cnblogs.com/jobs1/p/10784021.html线程间通信进程和线程的区别程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映…

    2022年10月7日
    3
  • recvfrom error 10022

    recvfrom error 10022http://blog.sina.com.cn/s/blog_6ffee9410100pqdt.html折腾了一个下午加大半个晚上,查了300多个网页,20多个技术论坛,终于把这个问题解决了,真不容易。总结下出现这个错误的一般原因和我出错的原因。出现这个错误的一般原因:1.fromlen参数没有初始化2.from参数没有设置正确,也就是结构问题3.参

    2022年7月23日
    8
  • PostgreSQL ISO 8601

    PostgreSQL ISO 8601国际标准化组织的国际标准ISO8601是日期和时间的表示方法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方法》。目前最新为第三版ISO8601:2004,第一版为ISO8601:1988,第二版为ISO8601:2000。(摘自百度百科)selectcast(‘2018-08-05T11:00:00Z’astimestamp),–标准时间 cast(‘2018-08-0…

    2025年7月4日
    3
  • PLD- FPGA与CPLD的区别[通俗易懂]

    PLD- FPGA与CPLD的区别[通俗易懂]http://home.eeworld.com.cn/my/space.php?uid=170289&do=blog&id=31215FPGA与CPLD的区别多篇整合系统的比较,与大家共享:尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:①CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑

    2022年5月27日
    40
  • 在PHP代码中空格的写法,html空格代码怎么写?

    在PHP代码中空格的写法,html空格代码怎么写?html 空格代码怎么写 html 空格代码是为 html 空格字符代码 由 amp n b s p 组成 记住最后一个分号不要忘记了 CSS 中当 white space 属性取值为 pre 时 浏览器会保留文本中的空格和换行 例如 AABB 显示效果为 AABBCSS 的 letter spacing 属性用于设置文本中字符之间的间隔 例如 欢迎光临 显示效果为 欢迎光

    2025年7月30日
    5
  • C++版OpenCV使用神经网络ANN进行mnist手写数字识别[通俗易懂]

    C++版OpenCV使用神经网络ANN进行mnist手写数字识别[通俗易懂]说起神经网络,很多人以为只有Keras或者tensorflow才支持,其实OpenCV也支持神经网络的,下面就使用OpenCV的神经网络进行手写数字识别,训练10次的准确率就高达96%。环境准备:vs2015OpenCV4.5.0以下为ANN神经网络的训练代码:#include<iostream>#include<opencv.hpp>#include<string>#include<fstream>usingnamespacestd

    2022年6月29日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号