嵌入式学习---DAY18:shell脚本

news2024/9/26 1:17:31
shell脚本文件进程网络HtmlDb

shell脚本是一系列shell命令的集合。   shell   命令解释器

shell编程:解释型语言、边翻译边执行、擅长文件处理,操作系统管理、开发效率高  cp 1  2、执、效率低、移植性好
C语言:编译型语言、先编译再执行、擅长数据计算和数据处理、开发效率低、执行效率高、移植性差

一、shell脚本编写流程

1.vim XX.sh                             第一行写为  #!/bin/bash

2.编写脚本

3.chmod +x XX.sh       也可写为   chmod 777 XX.sh

4../XX.sh

             rwx          rwx       rwx        1                     linux   linux 109 Aug 3 15:47           5.sh*

-普通    作者权限    组用户  其他人 硬链接(关联) 作者名  组名         最后写入时间        文件名

b 块设备                                                     r-x            -wx              r-x

c 字符设备                                                 101           011            101

d 目录                                                          5               3                5

l 软链接                                  改权限     chmod 535 1.sh

p 管道

S 套接字

二、shell变量

1.环境变量:env(命令)

UTF-8    1~8个字节

PATH:系统路径,保存当前工作的默认路径

2.位置变量

$#:传入参数的个数
$?:上一句shell命令执行的结果                      echo   $?           为零则为真,为1则为假
$$:当前shell的PID

三、shell脚本输入输出

read  a                   输入a
echo  '$a'                 输出a

四、打印字符串

"   ":打印字符串,遇到$变量则打印变量中的值
'   ':打印字符串,遇到$变量依然打印$变量

 `  `:将中间的字符串按照命令打印

#!/bin/bash 
name=linux
echo "请输入姓名"             //输入为zhangsan
read name
echo "$name,hello world"    //输出为zhangsan,hello world
echo '$name,hello world'    //输出为$name,hello world

计算两个数的加减乘除

#!/bin/bash 
read a 
read b
#bc
c=`expr $a + $b`
echo "a+b $c"
c=`expr $a - $b`
echo "a-b $c"
c=`expr $a \* $b`
echo "a*b $c"
c=`expr $a / $b`
echo "a/b $c"

五、分支语句

1.if语句


if 条件                                          if                                                               if
then                                            then                                                           then
         语句                                            语句                                                                语句
else                                            elif                                                              fi
         语句                                  then
fi                                                        语句
                                                   else 
                                                   fi     

test -eq 相等   -ne 不相等     -gt 大于    -lt 小于    -ge 大于等于      -le  小于等于

                    test 10 -eq $i     [ $i -eq 10 ]      if( i == 10)     均为一个变量i和10相等

#!/bin/bash 
a=20
b=30

if test $a -gt $b
then
    echo "a >  b"

fi

if [ $a -lt  $b ]
then 
    echo "a < b"
fi

if后可以用test,也可以用[]进行书写。

输入一个文件名,检测是否有这个文件,如果有这个文件内容为什么,没有则创建该文件并将hello world写入其中。

cat:查看该文件内容

#!/bin/bash 
echo "输入文件名"
read filename
if [ -e $filename ]
then 
    cat $filename 
else  

    touch $filename 
    echo "hello world" > $filename  #输出重定向
fi

输出重定向:把”hello world“输入到filename文件中

test 
-b 块设备文件   test -b /dev/usb0
-c 字符设备文件
-d 目录文件
-f  普通文件
-L 链接文件
-S  套接字文件
-p 管道文件

2.case语句

case $num in 
9)语句
;;
8|||)语句
;;
7)语句
;;
*)语句
;;
esac

#!/bin/bash 
echo "input num 1-10"
read a 

case $a in 
    1)
        echo "num is 1"
        ;;
    3|4|5)
    
        echo "num 3-5"
        ;; 
    *)
        echo "other"
        ;;
esac

六、循环语句

1.while语句

while [  条件    ]
do
语句
...
done

#!/bin/bash 
i=0
while [ $i -lt 100 ]
do
    echo "$i"
    #i++;
    i=`expr $i + 1`

done

2.for语句

for  i    in     结束标志
do
语句
...
done

seq:输出某个区间的数,例如seq 20 5 100,输出20到100之间每次隔5的数

#!/bin/bash 
for i in `seq 20 5 100`
do 

    echo "$i"
done

3.until语句

for  [条件]
do
语句
...
done

一直执行循环,直到条件满足为止

#!/bin/bash 
i=0
until [ $i -eq 100 ]
do 
    echo "$i"
    i=`expr $i + 1`
done

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

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

相关文章

【Linux】一篇总结!什么是重定向?输出重定向的作用是什么?什么又是追加重定向?

欢迎来到 CILMY23 的博客 &#x1f3c6;本篇主题为&#xff1a;一篇总结&#xff01;什么是重定向&#xff1f;输出重定向的作用是什么&#xff1f;什么又是追加重定向&#xff1f; &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Py…

绘制图层的图形全部都在geojson图层之下会被覆盖,同步graphic类型使用说明

### 绘制图层js const graphicLayer new mars3d.layer.GraphicLayer({zIndex: 1000000000000000000000000,hasEdit: false,isAutoEditing: false, // 绘制完成后是否自动激活编辑// addHeight: 1,allowDrillPick: false, }) 绘制方法js graphicLayer.startDraw({type: type,st…

一款免费的Windows 11/10系统常见问题修复工具

FixWin是一款功能强大的Windows系统修复工具&#xff0c;免费便携&#xff0c;无需安装即可使用。FixWin旨在帮助用户解决各种常见的Windows问题。它提供了多种修复选项和故障排除功能&#xff0c;适用于 Windows 11/10。 FixWin 主要功能&#xff1a; 系统文件检查器&#x…

深⼊理解指针(3)

1. 字符指针变量 2. 数组指针变量 3. ⼆维数组传参的本质 4. 函数指针变量 5. 函数指针数组 6. 转移表 1. 字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 ⼀般使⽤: char* 这两种方式都是把字符串中的首字符的地址赋值给pc。 在这串代码中 str1内容的地…

JVM高级特性

JVM高级特性 内存管理 jvm是自动内存管理的 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有的区域随着虚拟机进程的启动而一直存在&#xff0c;有些…

基于STM32的智能仓储管理系统教程

目录 引言环境准备智能仓储管理系统基础代码实现&#xff1a;实现智能仓储管理系统 物品识别与追踪模块环境监控模块数据处理与存储模块用户界面与远程管理应用场景&#xff1a;仓储管理与优化常见问题与解决方案收尾与总结 引言 随着电子商务和物流行业的快速发展&#xff…

C++手撕简易vector

提前准备工作 由于vector跟string不同&#xff0c;vector是可以存储不同类型的变量的容器&#xff0c;因此实现类模板是肯定的 在原本的STL的vector容器中&#xff0c;主要成员变量有&#xff0c;start&#xff0c;finish&#xff0c;和 end_of_storage 所以 template<cl…

leetcode 2415.反转二叉树的奇数层

1.题目要求: 给你一棵 完美 二叉树的根节点 root &#xff0c;请你反转这棵树中每个 奇数 层的节点值。例如&#xff0c;假设第 3 层的节点值是 [2,1,3,4,7,11,29,18] &#xff0c;那么反转后它应该变成 [18,29,11,7,4,3,1,2] 。 反转后&#xff0c;返回树的根节点。完美 二叉…

SolverLearner:提升大模型在高度归纳推理的复杂任务性能,使其能够在较少的人为干预下自主学习和适应

SolverLearner&#xff1a;提升大模型在高度归纳推理的复杂任务性能&#xff0c;使其能够在较少的人为干预下自主学习和适应 提出背景归纳推理&#xff08;Inductive Reasoning&#xff09;演绎推理&#xff08;Deductive Reasoning&#xff09;反事实推理&#xff08;Counterf…

npm ERR! missing script: serve

报错原因&#xff1a;我这里是因为跑错命令了&#xff0c;我用的npm run serve 解决办法&#xff1a;去package.json文件里面找到对应的serve命令运行即可&#xff0c;每个系统都不太一样&#xff0c;如果还不行可以看看是不是项目终端搞错了&#xff0c;比如我这个项目有两个前…

行为型设计模式3:模板方法/备忘录/解释器/迭代器

设计模式&#xff1a;模板方法/备忘录/解释器/迭代器 (qq.com)

无需提示的思考链推理:深度探索大型语言模型的内在能力

人工智能咨询培训老师叶梓 转载标明出处 在人工智能领域&#xff0c;提升大模型&#xff08;LLMs&#xff09;的推理能力一直是研究的重点。传统的方法主要依赖于特定的提示技术&#xff0c;例如少量样本或零样本的思考链&#xff08;CoT&#xff09;提示。这些方法虽然有效&am…

力扣爆刷第169天之TOP200五连刷111-115(课程表、单词搜索、归并)

力扣爆刷第169天之TOP200五连刷111-115&#xff08;课程表、单词搜索、归并&#xff09; 文章目录 力扣爆刷第169天之TOP200五连刷111-115&#xff08;课程表、单词搜索、归并&#xff09;一、207. 课程表二、LCR 125. 图书整理 II三、402. 移掉 K 位数字四、79. 单词搜索五、9…

Python自动化办公2.0:重塑工作效率的未来

在现代办公环境中&#xff0c;自动化技术和数据分析已经成为提升工作效率和决策质量的关键。随着Python编程语言的发展&#xff0c;我们迎来了“Python自动化办公2.0”时代&#xff0c;这一时代不仅包括强大的数据分析工具&#xff0c;还涵盖了酷炫的可视化技术和前沿的机器学习…

【卷积神经网络】卷积层详解【数学+python代码】

1、简介 学习目标&#xff1a; 掌握卷积计算过程掌握特征图大小计算方法掌握PyTorch卷积层API 基本概念&#xff1a; ①在计算机视觉领域&#xff0c;往往我们输入的图像都很大&#xff0c;使用全连接网络的话&#xff0c;计算的代价较高。 另外图像也很 难保留原有的特征 &am…

科技赋能生活——便携气象站

传统气象站往往庞大而复杂&#xff0c;需要专业人员维护&#xff0c;它小巧玲珑&#xff0c;设计精致&#xff0c;可以轻松放入背包或口袋&#xff0c;随身携带&#xff0c;不占空间。无论是城市白领穿梭于高楼大厦间&#xff0c;还是户外爱好者深入山林湖海&#xff0c;都能随…

numpy如何按等长分割数组

numpy如何按等长分割数组 1、效果 2、流程 1、分割数组 2、转列表3、代码 # -*- coding: utf-8 -*-""" @contact: 微---信 1257309054 @file: test.py @time: 2024/8/03 19:46 @author: LDC """ import numpy as np# 假设arr是需要分割的nump…

virtualbox7安装centos7.9配置静态ip

1.背景 我大概在一年之前安装virtualbox7centos7.9的环境&#xff0c;但看视频说用vagrant启动的窗口可以不用第三方工具(比如xshell、secure等)连接centos7.9&#xff0c;于是尝鲜试了下还可以&#xff0c;导致系统文件格式是vmdk了&#xff08;网上有vmdk转vdi的方法&#xf…

ChatGLM3-6B模型部署微调实战

准备 教程 视频教程 https://www.bilibili.com/video/BV1ce411J7nZ?p14&vd_source165c419c549bc8d0c2d71be2d7b93ccc 视频对应的资料 https://pan.baidu.com/wap/init?surlAjPi7naUMcI3OGG9lDpnpQ&pwdvai2#/home/%2FB%E7%AB%99%E5%85%AC%E5%BC%80%E8%AF%BE%E3%8…

Keil5.40因为Jlink驱动闪退问题

现象 Cannot load driver ‘C:\Keil_v5\ARM\Segger\JL2CM3.dll 原因 由于Jlink为盗版&#xff0c;导致闪退。 具体为JLinkARM.dll这个插件搞鬼。 这个插件的来源为 也就是我们装Jlink驱动的时候&#xff0c;勾选了这个选项&#xff0c;而导致这个毒瘤插件进入Keil&#xff…