嵌入式Linux shell编程实例

1. 输入两个数,实现两个数的相加

(1)具体实现代码如下

  1 #!/bin/bash
  2 read a
  3 read b
  4 sum=$(($a+$b))
  5 echo "$sum"

(2)编辑完内容后按Esc键再输入:wq保存,回车退出,执行结果如下图;

(3)上图示例为输入两个数,实现两个数相加和,输出结果。

2. 计算1~100的和

(1)具体实现代码如下

  1 #!/bin/bash
  2 i=0
  3 n=1                            # 定义循环变量
  4 while [ $n -lt 101 ];do        # 定义循环条件 n < 101
  5 i=$(( $i + $n ))               # 累加
  6 n=$(( $n + 1 ))
  7 done
  8 echo "$i"

(2)编辑完内容后按Esc键再输入:wq保存,回车退出,执行结果如下图;

(3)上图示例为1~100自然数相加和,输出结果。

3. 从键盘输入任意数字,计算其绝对值的累加和,一直到输入“end”结束,输出结果。

(1)在shell编程中,可以使用循环结构和条件判断语句实现从键盘输入任意数字,计算其绝对值的累加和,一直到输入“end”结束,输出结果。具体实现如下:

#!/bin/bash
sum=0
while true
do
    read num
    if [ "$num" == "end" ]; then
        break
    fi
    abs=$(echo $num | awk '{if($1>=0) print $1; else print -$1}')
    sum=$(($sum+$abs))
done
echo "累加和为:$sum"

(2)首先,我们设置一个变量$sum来保存累加和,然后使用while true循环结构来不断读取用户的输入,当输入为“end”时跳出循环。

(3)在循环中,我们使用read命令读取用户输入的数字,并使用if语句判断输入是否为“end”,如果是则跳出循环。

(4)接着,我们使用awk命令来计算输入数字的绝对值,并将其保存在变量$abs中。最后,我们将$abs加入累加和$sum中。

(5)当用户输入“end”时,循环结束,使用echo命令输出累加和$sum。具体步骤如下:

(6)脚本内容代码示例如下:

(7)编辑完内容后按Esc键再输入:wq保存,回车退出,执行结果如下图;

4. 提示输入自然数N,计算1至N的累加和,输出结果。

  1 #! /bin/bash
  2 number=1
  3 sum=0
  4 read num
  5 while [ $number -le $num ]
  6 do
  7     sum=$(($sum+$number))
  8     number=$(($number+1))
  9 done
 10 echo "$sum"

(1)脚本内容代码示例如下:

(2)编辑完内容后按Esc键再输入:wq保存,回车退出,执行结果如下图;

(3)上图示例为输入自然数5,计算1至5的累加和,输出结果为15。

5. 编写一个能读入位置参数、实现任一四则运算功能的shell脚本(函数)并运行;

(1)具体实现代码如下

  1 #!/bin/bash
  2 read -p "input number:" a
  3 read -p "input number:" b
  4 read -p "input fuhao:" c
  5 case $c in
  6 +)let "result=$a+$b"
  7 echo $result;;
  8 -)let "result=$a-$b"
  9 echo $result;;
 10 /)let "result=$a/$b"
 11 echo $result;;
 12 *)let "result=$a*$b"
 13 echo $result;;
 14 esac

(2)编辑完内容后按Esc键再输入:wq保存,回车退出,执行结果如下图;

(3)上图示例为输入两个数,输入运算符号实现算数基本运算法则

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/669097.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp创建支付密码实现(初始密码,第二次密码)

示例&#xff1a; 插件地址&#xff1a;自定义数字/身份证/密码输入框&#xff0c;键盘密码框可分离使 - DCloud 插件市场 1.下载插件并导入HBuilderX&#xff0c;找到文件夹&#xff0c;copy number-keyboard.vue一份为number-keyboard2.vue&#xff08;number-keyboard.vue是…

[数据集][目标检测]脑溢血检测数据集VOC+YOLO格式767张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;767 标注数量(xml文件个数)&#xff1a;767 标注数量(txt文件个数)&#xff1a;767 标注类别…

java 远程调试

1.远程启动时 jdk1.8-32\jre\bin\java.exe -Dfile.encodingUTF-8 -Djava.library.pathlib -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 -jar local-com.yuetai.service-0.0.1-SNAPSHOT.jar --spring.config.locationapplication.yml 2.本地调试项目连接远…

关于前端代码移动端的适配方案

为什么需要适配&#xff1f; 由于PC端和移动端的分辨率不同&#xff0c;前端展示的页面在两端设备如果原模原样的搬运则会导致PC端或移动端看到的画面相对于其设备的分辨率及其的不合理。 最为常见的是PC端正常浏览的网页没有做移动端适配&#xff0c;由于移动端分辨率普遍低于…

Base64码转换

title: Base64码转换 date: 2024-06-01 20:30:28 tags: vue3 后端图片前端显示乱码 现象 后端传来一个图片&#xff0c;前端能够接收&#xff0c;但是console.log()后发现图片变成了乱码&#xff0c;但是检查后台又发现能够正常的收到了这张图片。 处理方法 笔者有尝试将图…

虚拟现实环境下的远程教育和智能评估系统(三)

本周继续进行开发工具的选择与学习&#xff0c;基本了解了以下技术栈的部署应用&#xff1b; 一、Seata&#xff1a; Seata&#xff08;Simple Extensible Autonomous Transaction Architecture&#xff09;是一款开源的分布式事务解决方案&#xff0c;旨在提供高性能和简单易…

WordPress plugin MStore API SQL注入漏洞复现(CVE-2023-3077)

0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 0x02 漏洞概述 WordPress plugin MStore API 3.9.8 版本之前存在S…

信息学奥赛初赛天天练-18-挑战程序阅读-最长公共子序列、字符串与数组越界的巧妙应用

PDF文档公众号回复关键字:20240601 1 2023 CSP-J 阅读程序2 阅读程序&#xff08;程序输入不超过数组成字符串定义的范围&#xff1a;判断题正确填√&#xff0c;错误填&#xff1b;除特殊说明外&#xff0c;判断题1.5分&#xff0c;选择题3分&#xff0c;共计40分&#xff…

【30天精通Prometheus:一站式监控实战指南】第12天:windows_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…

PVE虚拟机 安装 OpenWrt

1、创建虚拟机 2、操作系统 3、磁盘&#xff0c;先删除 4、网络 5、其它默认 6、在 local 分区上传镜像 7、登录PVE虚拟机 # 切换到镜像目录 cd /var/lib/vz/template/iso/# 把镜像导入磁盘 qm importdisk 102 openwrt-buddha-version-v7_2022_-x86-64-generic-squashfs-uefi…

从零开始学习Slam-旋转矩阵旋转向量四元组(二)

本文参考&#xff1a;计算机视觉life 仅作笔记用 书接上回&#xff0c;上回不清不楚的介绍了旋转矩阵&旋转向量和四元组 现在回顾一下重点&#xff1a; 本着绕谁谁不变的变则 假设绕z轴旋转θ&#xff0c;旋转矩阵为&#xff1a; 再回顾一下旋转向量的表示以及这个基本记不…

GEE 10m 全球 LULC 数据集 ESRI Land Cover

土地利用土地覆盖&#xff08;LULC&#xff09;地图在许多行业部门和发展中国家越来越成为决策者的重要工具。这些地图提供的信息有助于通过更好地理解和量化地球过程和人类活动的影响&#xff0c;从而制定政策和土地管理决策。 ESRI Land Cover 数据介绍 ArcGIS Living Atlas …

NIUSHOP多商户V6版预售背后的前端技术革新

随着电子商务的快速发展&#xff0c;多商户电商平台成为了市场上的热门选择。在这个背景下&#xff0c;NIUSHOP多商户V6版的预售活动引发了广泛关注。本文将从前端技术的角度&#xff0c;探讨NIUSHOP多商户V6版在预售背后所蕴含的技术革新和亮点。 一、引言 NIUSHOP多商户系统…

关于Maven环境变量配置的报错The JAVA_HOME environment variable is not defined correctly的解决

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

Vue进阶之Vue无代码可视化项目(二)

Vue无代码可视化项目 项目初始化路由子路由错误示范正确示范App.vuerouter/index.tsAboutView.vueAboutAboutview.vuerouter/index.ts项目路由router/index.tsApp.vueActionsView.vueDataSourceView.vueLayoutView.vue路由样式App.vue进一步的App.vue项目初始化 路由 router i…

VLAN的概念及优势

文章目录 VLAN的概念及优势分割广播域 广播域vlanVLAN的优势 VLAN的种类静态VLAN动态VLAN 静态VLAN的配置静态VLAN范围配置静态VLAN的步骤 TRUNK介绍与配置三层交换机转发原理三层交换技术mls基于CEF的MLSCEF是一种基于拓补转发的模型 三层交换机的配置层 VLAN的概念及优势 分…

6. MySQL 查询、去重、别名

文章目录 【 1. 数据表查询 SELECT 】1.1 查询表中所有字段使用 * 查询表的所有字段列出表的所有字段 1.2 查询表中指定的字段 【 2. 去重 DISTINCT 】【 3. 设置别名 AS 】3.1 为表指定别名3.2 为字段指定别名 【 5. 限制查询结果的条数 LIMIT 】5.1 指定初始位置5.2 不指定初…

【详细讲解版】史上最全transformer面试题

史上最全transformer面试题答案 1.Transformer为何使用多头注意力机制&#xff1f;&#xff08;为什么不使用一个头&#xff09;2.Transformer为什么Q和K使用不同的权重矩阵生成&#xff0c;为何不能使用同一个值进行自身的点乘&#xff1f;3.Transformer计算attention的时候为…

Excel 将分组头信息填入组内明细行

Excel由多个纵向的分组表组成&#xff0c;组之间由空白行隔开&#xff0c;每组第1、2行的第2格是分组表头&#xff0c;第3行是列头&#xff0c;第1列和第6列数据是空白的&#xff1a; ABCDEF1ATLANTIC SPIRIT2Looe3VesselSpeciesSizeKgDateLocation4POLLACK22.523/04/20245POL…

内网-win1

一、概述 1、工作组&#xff1a;将不同的计算机按功能(或部门)分别列入不同的工作组 (1)、查看&#xff08;windows&#xff09; 查看当前系统中所有用户组&#xff1a;打开命令行--》net localgroup查看组中用户&#xff1a;打开命令行 --》net localgroup 后接组名查看用户…