嵌入式学习--LinuxDay03

news2024/12/23 19:19:26

嵌入式学习--LinuxDay03

shell脚本

1.1功能性语句

1.1.1说明性语句

1.1.2功能性语句

1)read

2)expr

3) test

a)字符串

b)整数的测试

c)文件属性的测试

1.2结构性语句

1.2.1if语句

1.2.2case语句

1.2.3for循环

1.2.4while循环

1.2.5循环控制语句

shell脚本

1.1功能性语句

1.1.1说明性语句

#开头

#注释

1.1.2功能性语句

1read

功能标准输入一行赋值后面变量

格式: read VAR1 VAR2 VAR3

读入第一个字符串VAR1第二个VAR2剩下所有VAR3

read -p "提示语句" 变量名 可以将提示语句输出同时输入变量

2expr

格式 expr 表达式

算术运算符expr主要用于简单整数运算加(+),减(-)乘( \*) 除 (/)取余 (%)

例:

expr 12 + 5 \* 3

注意:

1)表达式符号之间必须用空格间隔

2)expr引用变量必须$

3)expr自带打印功能

4)使用乘号\* 小括号\( \) 需要转义

5)把expr的结果赋值给变量需要命令置换符

6)expr不能进行++ -- 操作

#!/bin/bash
VAR1=5
VAR2=10
echo $VAR2
VAR2=`expr \( $VAR1 + 5 \) \* 2`
echo $VAR2

练习通过expr实现变量自加运算

a++ == a=a+1

#!/bin/bash
VAR1=5
VAR1=`expr $VAR1 + 1`
echo $VAR1

练习2:计算表达式值a*b+c-d/b,a=2,b=3,c=15,d=18

要求:

1)从终端读入4个数a,b,c,d

2)进行运算

3)打印结果输出到终端

3) test

字符串 整数 文件属性

a)字符串

$s1 = $s2 测试两个字符串是否完全一样

$s1 != $s2 测试两个字符串是否一样

-z $s1 测试s1长度是否0

-n $s1 测试s1长度是否不为0

b)整数测试

$a -eq $b 测试a是否等于b equal

$a -ne $b 测试a是否不等于b

$a -gt $b 测试a是否大于b greater than

$a -ge $b 测试a是否大于等于b

$a -lt $b 测试a是否小于b less than

$a -le $b 测试a是否小于等于b

#!/bin/bash
NUM=10
test $NUM -eq 1
echo $?        #非0
test $NUM -ne 10
echo $?        #非0
test $NUM -le 15
echo $?        #0
test $NUM -gt 5
echo $?        #0

c)文件属性测试

测试name 是否一个目录文件 -d name

测试name 是否一个普通文件 -f name

测试name 是否存在 -e name

1.2结构性语句

1.2.1if语句

1基本结构

if 条件

then

        命令表1

else

        命令表2

fi

#!/bin/bash
read N
if test $N -eq 10
then
    echo "="
else
    echo "!="
fi


2)分层结构

if 条件1

then

        命令表1

elif 条件2

then

        命令表2

else

        命令表3

fi

3嵌套结构

if 条件1

then

        if 条件2

        then

                命令表1

        else

                命令表2

        fi

else

        命令表3

fi

4)判断语句其他格式

if [ 条件 ]

then

        命令表1

else

        命令表2

fi

注意

  1. if 和 fi是条件语句的括号,必须成对使用
  2. 命令表中的命令可以一条也可以多条

注释整段代码

if false

then

fi

练习:从终端输入3个整数;从小到大排序

1.2.2case语句

格式

case 变量 in

模式1

        命令表1

        ;;

模式2)

        命令表2

        ;;

        。。

*

        命令表n

        ;;

esac

注意:

1)case语句只能检测字符串变量

2)命令表以单独的;;结束,退出case语句

3)模式n通常写为*,表示其他所有的模式

4)case匹配项中可以存在多个模式,每种模式之间|隔开

1.2.3for循环

格式

for 变量名 in 单词

do

        命令表

done

变量依次从单词表中读取各个单词,每取一次单词,就执行一次循环体中的命令表,循环次数由单词表中的单词数决定,命令表中的命令可以一条,也可以是由分号或换行符分隔开的多条。

for语句的几种基本书写格式:

1)for i in 1 2 3 4 5

do

....

done

变量i从单词表中取值

2)for i

do

...

done

变量i从命令行取值,可以省略in 单词表

3)for i in {1..10}

do

...

done

变量i从1-10取值

4)for ((i=0;i<10;i++))

do

...

done

书写格式类似于c语言

#!/bin/bash
#1)
# for i in 1 2 3 4 5
# do
#     echo -n "$i  "
# done
# echo 

#2)
# for i 
# do
#     echo -n "$i  "
# done
# echo 

#3)
# for i in {1..10}
# do
#     echo -n "$i  "
# done
# echo 

# 4)
for ((n=1;n<=10;n++))
do 
    echo -n "$n  "
done
echo 

练习:实现1-10求和

1.2.4while循环

格式

while 命令表达式

do

        命令表

done

输出1-10

1.2.5循环控制语句

break n :结束n循环

continue n:结束n本次循环继续下一次循环

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

心觉:运用吸引力法则和开发潜意识的核心中的核心是什么?

吸引力法则的核心在于 思想的力量 和 频率的匹配。你所思考和感受的会吸引与你频率相匹配的事物和经历到你的生活中。具体来说&#xff1a; 明确意图和目标&#xff1a;清晰地知道你想要什么&#xff0c;并且用详细的方式描述它。这可以是通过写下目标、制作愿景板&#xff08;…

rocky9.2实现lvs(DR模式)+keepalived实现高可用的案例详解(双机热备、lvs负载均衡、对后端服务器健康检查)

文章目录 [TOC] 前言lvs(DR模式)的工作原理环境实现过程一、lvs1配置二、lvs2配置web1配置web2配置结果验证 总结 前言 想必能搜到这个也不是来看知识点的&#xff0c;这里就简单描述一下lvs的dr模式的工作原理&#xff0c;其他的就不过多阐述了,直接看操作步骤就好&#xff0…

rabbitMQ 简单使用

安装 rabbitMQ 下载地址&#xff1a;rabbitmq-3.12.0 安装 windows rabbitMQ 需要的命令 进入 rabbitMQ 的 sbin 目录后 cmd &#xff08;需要管理员权限&#xff09; rabbitmq-plugins.bat enable rabbitmq_management随后重启 rabbitMQ #关闭服务 net stop rabbitmq #开…

【机器学习(八)】分类和回归任务-因子分解机(Factorization Machines,FM)算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理&#xff08;一&#xff09; FM表达式&#xff08;二&#xff09;时间复杂度&#xff08;三&#xff09;回归和分类 三、算法优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 四、FM分类任务实现对比&#xff08;一&…

YOLOV8在清微智能芯片的部署与实现(一)

现在以YOLOV8 为例&#xff0c;进行演示 文章目录 1. YOLOV8浮点模型训练1.1 准备数据集1.1.1 下载业务数据集1.1.2 下载开源数据集1.1.3 自定义数据集1.1.4 将数据转换为yolo训练数据格式 1.2 yolov8项目准备1.3 训练模型 2. YOLOV8浮点模型推理2.1 模型推理2.2 模型val.py评…

纯CSS实现有趣emoji切换开关

这是一个纯CSS创建的动画切换开关&#xff0c;它不仅能够在视觉上吸引用户&#xff0c;还能通过交互提供即时反馈。本文将解析源码的核心实现逻辑&#xff0c;这个项目的核心是使用CSS变量、3D变换和过渡效果来实现一个动态的、响应式的用户界面元素。 关键技术点 CSS变量&am…

[Python学习日记-31] Python 中的函数

[Python学习日记-31] Python 中的函数 简介 语法定义 函数的参数 简介 引子&#xff1a; 你是某公司的一个高级程序员&#xff0c;现在老板让你写一个监控程序&#xff0c;需要24小时全年无休的监控公司网站服务器的系统状况&#xff0c;当 CPU、Memory、Disk 等指标的使用…

基于SpringBoot+Vue+MySQL的体育商城系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网的飞速发展&#xff0c;电子商务已成为人们日常生活中不可或缺的一部分。体育用品市场作为其中的一个重要分支&#xff0c;也逐渐向线上转移。基于SpringBootVueMySQL的体育商城系统应运而生&#xff0c;旨在通过构建…

如何使用ssm实现基于Java的高校物业工程报修系统

TOC ssm736基于Java的高校物业工程报修系统jsp 绪论 1.1研究背景与意义 信息化管理模式是将行业中的工作流程由人工服务&#xff0c;逐渐转换为使用计算机技术的信息化管理服务。这种管理模式发展迅速&#xff0c;使用起来非常简单容易&#xff0c;用户甚至不用掌握相关的专…

一行命令将Cmder添加到系统右键菜单中----配置环境

第一步&#xff0c;去官网下载一个简版的文件 ** 第二步&#xff0c;将下载的文件解压后如图&#xff0c;找到Cmder.exe右键以管理员身份运行 第三步&#xff0c;在窗口输入cmder /register all然后回车 第四步&#xff0c;OK!不管在哪里都可以使用了&#xff0c;直接右键即可

vscode环境迁移

关注B站可以观看更多实战教学视频&#xff1a;hallo128的个人空间 vscode环境迁移 Setting 即可打开settings.json {"python.pythonPath": "/Users/apple/opt/anaconda3/bin/python","cmake.cmakePath": "/usr/local/bin/cmake",&qu…

[c++高阶]模版进阶

1.前言 在我们学习c的时候&#xff0c;常常会遇见要使用函数重载的情况。而当使用函数重载时&#xff0c;通常会使得我们编写很多重复的代码&#xff0c;这样就显得非常臃肿&#xff0c;并且效率非常的低下。 重载的函数仅仅只是类型不同&#xff0c;代码的复用率比较低&#x…

浮点数的这些特性你了解吗

问题1:下面的代码&#xff0c;输出结果是什么&#xff1a; public class CaclTest{public void test1(){float f 1.0F / 0.0F;System.out.println("f:" f)}public static void main(String[] args){CaclTest ct new CaclTest();ct.test1();}} A. 运行抛出异常:j…

7.数据结构与算法-循环链表

如果经常对首位元素进行操作&#xff0c;用尾元素更方便更快捷 两个循环链表合并

信息安全工程师(21)安全协议

前言 安全协议是建立在密码体制基础上的一种交互通信协议&#xff0c;它运用密码算法和协议逻辑来实现认证、密钥分配、数据机密性、完整性和抗否认性等安全目标。 一、定义与目的 安全协议旨在确保网络环境中信息交换的安全性&#xff0c;通过密码技术和协议逻辑来保护数据的机…

第八届蓝桥杯嵌入式省赛程序设计题解析(基于HAL库)

一.题目分析 &#xff08;1&#xff09;.题目 &#xff08;2&#xff09;.题目分析 1.按键功能分析----过程控制 a. 选择按键按下的个数和目标层数&#xff08;每个按键都要在一秒之内按下&#xff0c;否则就结束&#xff09; b. 当升降机到达目标平台&#xff0c;LED灯熄灭 c.…

负载均衡(Load Balancing)是一种计算机技术,用于在网络应用中分配工作负载,以优化资源使用、最大化吞吐量、减少响应时间以及避免过载。

负载均衡&#xff08;Load Balancing&#xff09;是一种计算机技术&#xff0c;用于在网络应用中分配工作负载&#xff0c;以优化资源使用、最大化吞吐量、减少响应时间以及避免过载。通过将任务均匀地分布在多个组件上&#xff0c;如服务器、网络链接、CPU、硬盘等&#xff0c…

【AG 创新工坊】探索存内计算的未来,共话 AGI 时代

目录 ⚛️1. 会议详情 ☪️2. 会议回顾 ♋2.1 多模态时代&#xff0c;存内计算架构的应用与发展 ♏2.2 分布式环境下深度学习任务的高效可靠执行研究 ♐2.3 IGZO在后道单片三维集成中的机遇与挑战 ♑2.4 witin-nn:神经网络算法模型在存内开发板上的应用开发 ♉2.5 茶歇交…

讯飞星火编排创建智能体学习(一)最简单的智能体构建

目录 开篇 智能体的概念 编排创建智能体 创建第一个智能体 ​编辑 大模型节点 测试与调试 开篇 前段时间在华为全联接大会上看到讯飞星火企业级智能体平台的演示&#xff0c;对于拖放的可视化设计非常喜欢&#xff0c;刚开始以为是企业用户才有的&#xff0c;回来之后查…

X86架构(九)——保护模式的进入

全局描述符表 全局描述符表(Global Descriptor Table,GDT)是保护模式下非常重要的一个数据结构。 在保护模式下&#xff0c;对内存的访问仍然使用段地址和偏移地址&#xff0c;在每个段能够访问之前&#xff0c;必须先行设置好 GDT 的地址&#xff0c;并加载全局描述符表寄存…