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

Linux centos7 bash编程训练

训练编写一段代码,打印输出100之内的明7暗7,同时要求每5个数字打印在一行。

此项训练主要是考察for循环的使用,及条件判断表达式的设置和不同写法的应用。

常用的for循环有四种写法(如打印1-100的整数):

        for i in $(seq 100);do echo $i;done

        for i in `seq 100`;do echo $i;done

        for ((i=0;i<=100;i++));do echo $i;done

        for i in {1..100};do echo $i;done

每种方法,都能达到期望的结果。

对于条件判断式,也有四种常见写法:

        test 表达式

        [ 表达式 ] # 表达式与[或]之间必须有空格

        [[表达式 ]]

        ((表达式))

结合上述解释,本案例代码列出如下:

cat  for_7.sh

#!/bin/bash

# 打印输出100之内的明7暗7

# 打印数字,每5个一行

cnt=0  # 设置计数变量

for ((i=1;i<=100;i++))  #这是一种C风格for循环写法

do

:<<!

         下面判断的三项条件,我们分别以不同的方式写出

         $((i%7))这种写法与`expr $i / 10`相同,这是bash中的变量运算表达式写法

         $[i%10] 这是对判断表达式结果的引用

         `expr $i / 10`写法中要注意每项之间要有空格

!

         if [[ $((i%7)) -eq 0 || $[i%10] -eq 7 || `expr $i / 10` -eq 7 ]]

         then

                   echo -ne "$i\t"

                   let cnt++

                   if [ $[cnt%5] -eq 0 ];then

                            echo

                   fi

         fi

done

把sh文件中代码进行部分改写,如下。结果相同

count=0;for i in $(seq 100); do if [[ $((i%7)) -eq 0 || $[i%10] -eq 7 || `expr $i / 10` -eq 7 ]];then echo -ne "$i\t"; let count++; if ((count%5==0));then echo; fi; fi; done

[[ ]] 中匹配字符串或通配符,不需要引号;其中可以使用逻辑运算符||。

http://www.lryc.cn/news/168354.html

相关文章:

  • k8s集群换ip
  • 选择HAL库还是标准库
  • 计算机竞赛 机器视觉的试卷批改系统 - opencv python 视觉识别
  • Mapbox gl HTML经纬度点渲染,动态轨迹播放,自定义图形以及轨迹上显示箭头方向
  • kubernetes部署(kubeadmin)
  • Leetcode168. Excel表列名称
  • 碎片笔记 | 大模型攻防简报
  • 【100天精通Python】Day63:Python可视化_Matplotlib绘制子图,子图网格布局属性设置等示例+代码
  • 【Android常见问题(六)】- UX标注色值带有百分比的使用方法
  • Prometheus+Grafana可视化监控【ElasticSearch状态】
  • Java手写堆排序(Heap Sort)和案例
  • Linux设备驱动模型之字符设备
  • Kafka3.0.0版本——消费者(自动提交 offset)
  • 【业务功能116】微服务-springcloud-springboot-Kubernetes集群-k8s集群-KubeSphere-公共服务 DNS
  • 马斯洛的动机与人格、需求层次理论
  • TCP/IP网络传输模型及协议
  • git 推送出现fatal: The remote end hung up unexpectedly解决方案
  • Hive内置函数字典
  • svg 知识点总结
  • 开源库源码分析:OkHttp源码分析(二)
  • 校园地理信息系统的设计与实现
  • Vulnhub实战-prime1
  • Scala学习笔记
  • 虹科分享 | 软件供应链攻击如何工作?如何评估软件供应链安全?
  • gRpc入门和springboot整合
  • 基于FPGA点阵显示屏设计-毕设
  • Rocky9.2基于http方式搭建局域网yum源
  • Android 串口通讯
  • 论如何在Android中还原设计稿中的阴影
  • Hadoop生态圈中的Flume数据日志采集工具