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

【linux】shell脚本编写基础

shell 脚本关键字:

1、变量定义:=前后不能空格

输入:
zhao="Joe"
echo ${zhao}
echo "I am ${zhao}"
输出:
yuxin
I am Joe

2、echo 输出

输入:
echo "123"
输出:
123

3、readonly 定义变量为只读变量:先定义变量再定义只读变量

输入:
zhao="Joe"
echo "you are ${zhao}"
readonly zhao
zhao="Joe1"
echo "I am ${zhao}"
输出:
you are Joe
I am Joe
script.sh: line 5: zhao: readonly variable

4、删除变量

输入:
zhao="Joe"
unset zhao
echo ${zhao}
无输出

5、整型

declare -i num=1
typeset num=1

6、字符串

str='123'  #单引号中间不可以有变量,可以拼接  双引号可以有变量
echo ${#str}  # 读取字符串长度
echo ${str:1:2} # 提取子字符串
echo `expr index "$str" 32`               # 查找子字符3或2的位置

7、数组

array=(1 2 3 4 5)
array[0]=1 # 读取数组元素
array[@] # 读取所有数组元素
length = ${#array[@]}  # 数组元素个数
关联数组:
declare -A array  # -A 声明一个关联数组,绑定键值对
declare -A site
site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"
${!site[*]}  # 获取所有的键
${site[*]}   # 获取所有的值

8、expr表达式工具
var=expr 2 + 2

9、test 检查某个条件是否成立

num1="ru1noob"
num2="runoob" 
if test $num1 = $num2
thenecho '两个字符串相等!'
elseecho '两个字符串不相等!'
fi

10、判断

f condition1
thencommand1
elif condition2 
then command2
elsecommandN
fi

11、循环

for var in item1 item2 ... itemN
docommand1command2...commandN
donewhile condition
docommand
doneuntil condition
docommand
done
casein
模式1)command1command2...commandN;;
模式2)command1command2...commandN;;
esac

相关文章:

【linux】shell脚本编写基础

shell 脚本关键字: 1、变量定义:前后不能空格 输入: zhao"Joe" echo ${zhao} echo "I am ${zhao}" 输出: yuxin I am Joe2、echo 输出 输入: echo "123" 输出: 1233、readonly 定义变…...

STM32 外设简介

STM32 外设简介 STM32 是由意法半导体 (STMicroelectronics) 开发的一系列基于 ARM Cortex 内核的微控制器,广泛应用于嵌入式系统中。STM32 系列的一个重要特点是其丰富而强大的外设模块,支持多种接口和功能,能满足工业控制、物联网、消费电…...

Django-Vue3-Admin - 现代化的前后端分离权限管理系统

项目介绍 Django-Vue3-Admin是一个基于RBAC(Role-Based Access Control)模型的综合性基础开发平台,专注于权限控制,支持列级别的细粒度权限管理。该项目采用前后端分离架构,技术栈包括: 后端: Django Django REST …...

Cesium K-means自动聚合点的原理

Cesium K-means自动聚合点的原理 Cesium 是一个开源的 JavaScript 库,用于在 Web 环境中创建 3D 地球和地图应用。它能够处理地理空间数据,并允许开发者对大规模的地理数据进行可视化展示。在一些应用中,尤其是当处理大量地理坐标点时&#…...

Vue 项目中如何解决组件之间的循环依赖

前言 在大型 Vue 项目中,组件之间的关系可能会变得非常复杂,甚至会出现循环依赖的问题。循环依赖是指两个或多个模块互相依赖,形成一个闭环。这类问题会导致项目无法正常编译或运行,甚至可能引发意想不到的错误。本文将通过通俗易…...

交通流量预测:基于交通流量数据建立模型

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

Hot100 - 搜索二维矩阵II

Hot100 - 搜索二维矩阵II 最佳思路: 利用矩阵的特性,针对搜索操作可以从右上角或者左下角开始。通过判断当前位置的元素与目标值的关系,逐步缩小搜索范围,从而达到较高的效率。 从右上角开始:假设矩阵是升序排列的&a…...

uart_pl011.c驱动API的zephyr测试

API概述 本次测试针对uart的uart_poll_in和uart_poll_outAPI进行测试, uart_poll_in static int pl011_poll_in(const struct device *dev, unsigned char *c)这是一个轮询方式的接收函数: 功能:检查 UART 是否有新数据到达,如…...

RPA:电商订单处理自动化

哈喽,大家好,我是若木,最近闲暇时间较多,于是便跟着教程做了一个及RPA,谈到这个,可能很多人并不是很了解,但是实际上,这玩意却遍布文末生活的边边角角。话不多说,我直接上…...

小程序 - 个人简历

为了让招聘人员快速地认识自己,可以做一个“个人简历”微信小程序, 展示自己的个人信息。 下面将对“个人简历”微信小程序进行详细讲解。 目录 个人简历 创建图片目录 页面开发 index.wxml index.wxss 功能实现截图 总结 个人简历 创建图片目录…...

MySQL自启动失败(MySQL不能开机自启)解决方案_MySQL开机自启疑难杂症解决,适用Win11/Win10

问题描述(MySQL 开机自启失败) 本文解决方法,在 windows10 、 windows11 系统中均可使用。 win11 安装 MySQL 后,不能开机自启。 在服务中,手动启动服务后,可正常使用,一点异常都没有。 或者…...

储存水..

问题描述: 给定m个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子下雨之后能储存多少水. 思路解析: 思考一下,什么样的位置能盛水?只有在当前柱子的左边和右边都比它高的情况下才能储存住水,而储水量和左侧最高柱及右侧最高柱有关.具体来说就是和左右两侧最矮的…...

Cmake 常用操作总结

CMakeLists.txt结构 总结该文件的主要结构 cmake_minimum_required(VERSION <version>) 指定CMake的最低版本&#xff0c;一般都是根据项目需要设定 cmake_minimum_required(VERSION 3.10) project(<name>) 定义项目的名称&#xff0c;放在CMake的开头 project(…...

Kylin Server V10 下 RocketMQ 主备自动切换模式部署

一、NameServer简介 NameServer 是一个注册中心,提供服务注册和服务发现的功能。NameServer 可以集群部署,集群中每个节点都是对等的关系,节点之间互不通信。 服务注册 Broker 启动的时候会向所有的 NameServer 节点进行注册,注意这里是向集群中所有的 NameServer 节点注册…...

DevOps工程技术价值流:GitLab源码管理与提交流水线实践

在当今快速迭代的软件开发环境中&#xff0c;DevOps&#xff08;开发运维一体化&#xff09;已经成为提升软件交付效率和质量的关键。而GitLab&#xff0c;作为一个全面的开源DevOps平台&#xff0c;不仅提供了强大的版本控制功能&#xff0c;还集成了持续集成/持续交付(CI/CD)…...

Vue 3 中实现页面特定功能控制

在开发 Vue 应用时&#xff0c;我们经常会遇到需要在特定页面启用或禁用某些功能的情况。本文将以 A父.vue 页面为例&#xff0c;探讨如何在点击汇总菜单时仅在该页面生效&#xff0c;而在其他页面不生效的问题。 1. 利用 Vue 3 的 provide 和 inject 实现状态传递 Vue 3 提供…...

VLC 播放的音视频数据处理流水线搭建

VLC 用 input_thread_t 对象直接或间接管理音视频播放有关的各种资源,包括 Access,Demux,Decode,Output,Filter 等,这个类型定义 (位于 vlc-3.0.16/include/vlc_input.h) 如下: struct input_thread_t {VLC_COMMON_MEMBERS };input_thread_t 是个抽象类型,VLC 中这个类…...

何时在 SQL 中使用 CHAR、VARCHAR 和 VARCHAR(MAX)

在管理数据库表时&#xff0c;考虑 CHAR、VARCHAR 和 VARCHAR(MAX) 是必不可少的。此外&#xff0c;使用正确的工具&#xff08;例如dbForge Studio for SQL Server&#xff09; &#xff0c;与数据库相关的任务都会变得更加容易。它是针对 SQL Server 专业人员的强大的一体化解…...

学习笔记043——HashMap源码学习1

文章目录 1、HashMap2、Hashtable3、TreeMap4、HashMap 底层结构4.1、什么是红黑树&#xff1f; 1、HashMap HashMap key 是不能重复的&#xff0c;value 可以重复 底层结构 key-value 进行存储&#xff0c;key-value 存入到 Set 中&#xff0c;再将 Set 装载到 HashMap pack…...

单点登录原理

允许跨域–>单点登录。 例如https://www.jd.com/ 同一个浏览器下&#xff1a;通过登录页面产生的cookie里的一个随机字符串的标识&#xff0c;在其他子域名下访问共享cookie获取标识进行单点登录&#xff0c;如果没有该标识则返回登录页进行登录。 在hosts文件下面做的域名…...

APK安装器完整指南:在Windows上轻松安装安卓应用的终极方案

APK安装器完整指南&#xff1a;在Windows上轻松安装安卓应用的终极方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否想在Windows电脑上直接运行手机应用&…...

自建链接管理服务OtterLink:从部署到实战的完整指南

1. 项目概述&#xff1a;一个链接管理的“瑞士军刀” 最近在折腾个人知识库和内容分发&#xff0c;发现一个痛点&#xff1a;手头攒了太多链接。技术文章、工具网站、项目仓库、临时笔记链接……散落在浏览器书签、聊天记录、备忘录里&#xff0c;时间一长要么找不到&#xff…...

GeoServer部署实战与前端地图调用跨域配置详解

1. GeoServer快速部署指南 第一次接触GeoServer的朋友可能会觉得这个开源地图服务器有点神秘&#xff0c;其实它的安装比想象中简单得多。我在多个项目中部署过不同版本的GeoServer&#xff0c;总结出了一套最稳妥的安装流程。GeoServer本质上是一个基于Java的Web应用&#xff…...

veil:专为AI智能体设计的无头浏览器自动化工具

1. 项目概述&#xff1a;为AI智能体打造的“隐形之手”如果你正在构建或使用AI智能体&#xff0c;并且希望它能像真人一样操作浏览器——登录社交平台、发布内容、浏览网页、点击按钮——那么你很可能已经感受到了传统自动化工具的掣肘。Selenium、Puppeteer这些工具很棒&#…...

【AI智能体】OpenClaw 本地 数字员工 Windows 快速搭建方法

OpenClaw&#xff08;小龙虾&#xff09;是一款备受开发者关注的开源本地 AI 智能体&#xff0c;凭借本地运行、零代码操作、自动执行电脑任务等特点快速普及。它不只是对话 AI&#xff0c;更是能够直接操控系统的自动化工具&#xff0c;可根据自然语言指令完成任务拆解、工具调…...

谷歌seo搜索引擎优化教程有吗?资深SEO总结的15个高效提速工具

很多企业主每年在独立站开发上投入超过 10 万人民币&#xff0c;但网站上线半年&#xff0c;每天的自然访问量依然是个位数。面对“谷歌seo搜索引擎优化教程有吗&#xff1f;”这种疑问&#xff0c;行业内的真实情况是&#xff1a;绝大部分公开课都在讲十年前的套路&#xff0c…...

告别外部中断!用STM32定时器输入捕获实现EC11编码器的高效解码

STM32定时器输入捕获实现EC11编码器的高效解码方案 在嵌入式开发中&#xff0c;旋转编码器作为人机交互的重要组件&#xff0c;广泛应用于工业控制、智能家居和消费电子等领域。EC11作为常见的机械编码器&#xff0c;其稳定性和低成本使其成为许多项目的首选。然而&#xff0c;…...

Python包安装全攻略:从pip、conda到离线安装,总有一种方法适合你

Python包安装全攻略&#xff1a;从pip、conda到离线安装&#xff0c;总有一种方法适合你 在Python开发中&#xff0c;依赖管理是每个开发者必须掌握的核心技能。无论是数据科学家搭建机器学习环境&#xff0c;还是Web开发者部署Django应用&#xff0c;都离不开Python包的安装与…...

ADI GitHub工程编译指南:以ADRV9009/ZC706为例,搞懂Tcl脚本工程的结构与自动化构建

ADI GitHub工程编译指南&#xff1a;深入解析Tcl脚本工程与自动化构建体系 当你在GitHub上打开Analog Devices的HDL仓库时&#xff0c;可能会被密密麻麻的Tcl脚本和Makefile文件搞得一头雾水。这种以脚本驱动的硬件项目组织方式&#xff0c;正逐渐成为开源硬件领域的标准实践。…...

AI技能树:构建系统化学习路径,从理论到工程实践

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“HieuNghi-AI-Skills”。光看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但点进去之后&#xff0c;我发现这其实是一个关于AI技能学习的资源集合库。简单来说&#xff0c;它就是一个由社区驱…...