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

shell编程规范和脚本变量

什么是shell

人和计算机内核之间的中介:

计算机的语言是二进制,把人类的语言翻译成计算机能够识别的语言,然后让内核来处理

内核完成之后要把结果反馈给用户,要把计算机的翻译成人类能够识别的语言

命令解释器,pycharm idel vscode

linux当中的shell有哪些:

1、bash 主流,也是现在市面上绝大多数的linux系统默认的shell

2、sh bash是sh的升级版

3、csh 类C语言的shell

4、tcsh 和CSH类型,相当于升级版

5、nologin:也是一种shell,禁止用户登录

shell----脚本:扩建语言,或者是动态语言,是一种编程的语言,控制软件的应用程序,只要在被调用时,才会执行

脚:把保存在文本中的代码执行起来

本:保存在文本中的代码,特定条件(运行代码的条件)

shell脚本的作用:

自动化运维

批量化重复操作可以通过脚本和计划任务来进行自行运行。

减轻了管理人员的工作量

避免配置出错

在工作中所有的脚本都是赋权执行的

★shell脚本的结构:

创建一个子shell环境,只在这个子环境当中运行,不会“真正”的执行代码。运行结束,子环境也会退出。

1、bash 调试模式

source 点命令:真正的运行可执行的代码

2、赋权执行

/opt/first.sh

3、定时任务------》绝对路径

重定向:就是把这些信息保存到指定的文件当中去

重定向输入

重定向输出  >  只能把标准输入保存到文件当中去,如果原文有内容会直接覆盖  >>  标准输出保存到文件当中去

重定向错误输出   2>   将错误信息保存到指定的文件,文件当中的内容也会被覆盖

                            2>>  将错误信息保存到指定的文件,文件当中的内容不会被覆盖而是在行后追加

混合输出             &> 将标准输出、标准错误保存到同一文件中,覆盖原内容

                            &>> 将标准输出、标准错误保存到同一文件中,文件当中的内容不会被覆盖而是在行后追加

★变量:用来存放系统和用户需要使用的特定的参数

变量名:

系统定义好的,每个用户都可以使用(全局变量)一般情况下是不可以修改的

自定义变量:主要是用户定义的名称和名称对应的参数(值)

★自定义变量名:

1、不要使用系统的命令作为变量名称

2、不要使用中文

3、变量名不能使用特殊符号来开头

4、定义变量时,一定要是字母开头,不能以数字开头。

5、变量名最好是对应的名称的英文全称或者简写。

变量值:

int ............... 整数,没有小数点

string ............ 字符串,字母或者数字组成,会用引号引起来

布尔 ............. true false 为真还是为假

打印变量

echo  $number

★弱引用和强引用

“  ”:弱引用打印变量时,加上双引号就是变量的值

‘  ’:强引用打印变量时,就是字符串本身,不在代表变量对应的值

变量的作用范围

1、全局变量(主要是系统定义的,不能改的)

在全局配置文件当中修改,export 变量名=值

所有的用户都可以使用

如果有需要一直不变的参数可以供所有人使用,就可以配置全局变量

副作用:一旦有改动,会增加复杂性

2、环境变量(也是全局变量的一种),系统创建的,设置用户的工作环境由系统维护,一般用户是不去修改的,让所有人都可以自动识别到(自动补齐)

3、位置变量,脚本外传参

$1  $2

4、预定义变量(全局变量的一种,脚本解释器提供的,或者是编程语言自带的,不能修改)

★$*  $@:表示命令或者脚本需要处理的参数,区别在于处理方式不同

区别:"$",会把传入的参数当做一个整体来进行处理,不加双引号和$@是一样的,都是一个一个处理

$@,加不加双引号,都会把参数一个一个的处理

$#:记录传递给脚本参数的个数

$?:记录的上一次执行命令的返回码,用来判断上一次执行的命令是否成功

0和非0

只有0表示上一次的命令执行成功,其他的都是失败

整数运算

整数运算是指对整数进行的算术运算。常见的整数运算包括加法、减法、乘法和除法(只取商的整数部分)。

非整数运算

通常指对浮点数(小数)进行的算术运算。常见的非整数运算包括加法、减法、乘法和除法(结果可以是小数)。

num=$(echo "4.4+5.5" | bc)

num1=$(awk 'BEGIN{print 4.45*1.2}' )

echo $num1

相关文章:

shell编程规范和脚本变量

什么是shell 人和计算机内核之间的中介: 计算机的语言是二进制,把人类的语言翻译成计算机能够识别的语言,然后让内核来处理 内核完成之后要把结果反馈给用户,要把计算机的翻译成人类能够识别的语言 命令解释器,pyc…...

jspm美容院管理系统

摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计…...

Prometheus结合K8s(二)使用

上一篇介绍了如何搭建 Prometheus结合K8s(一)搭建-CSDN博客,这章介绍使用 页面访问 kubectl get svc -n prom 看promeheus和granfana的端口访问页面 Prometheus 点击status—target,可以看到metrics的数据来源,即各…...

【虚幻引擎】UE5数字人开发实战教程

本套课程将会交大家如何去开发属于自己的数字人,包含大模型接入,流式输出,语音识别,语音合成,口型驱动,动画蓝图,语音唤醒等功能。 课程介绍视频如下: 【虚幻引擎】UE5 历时一个多月…...

深入分析:固定参考框架在RViz中的作用与对数据可视化的影响 ros ubuntu20.04

深入分析:固定参考框架在RViz中的作用与对数据可视化的影响 RViz (Robot Visualization) 是 ROS (Robot Operating System) 中一种重要的三维可视化工具,主要用于实时观察和分析传感器数据、机器人状态信息以及环境模型。RViz的核心功能之一是固定参考框…...

Android:时间选择器(最下面有效果图)

1.创建DateUtil类 /*** Created by wangshuai on 2024/11/19.*/ public class DateUtil {public final static String PATTERN_ALL"yyyy-MM-dd HH:mm:ss";public final static String PATTERN_DEFAULT"yyyy-MM-dd";/*** 获取当前时间* return yyyy-MM-dd*…...

第十六届蓝桥杯模拟赛(第一期)-c++/c

c/c蓝桥杯模拟赛题解,非常详细 质因数 1、填空题 【问题描述】 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问 2024 有多少个质因数。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提…...

如何挑选路由器?需要看哪些参数?

挑选路由器时,选择合适的型号和参数对于确保家庭或办公网络的速度、稳定性和覆盖范围至关重要。以下是挑选路由器时需要考虑的关键参数和因素: 1. 无线标准 (Wi-Fi标准) 无线标准是衡量路由器性能的核心指标。不同的无线标准提供不同的速率、范围和技术…...

mysql-备份(二)

前章介绍了MySQL的内部数据结构btree,这章讲述mysql的备份 1:环境 ubuntu22.04 LST mysql5.7.42 or win10 mysql5.7.44 (这里图简单直接windows部署) download:https://downloads.mysql.com/archives/community/ 2:install 1> unzip mysql-5.7.44-w…...

Tailwind CSS 和 UnoCSS简单比较

UnoCSS 和 Tailwind CSS 都是流行的原子化 CSS 框架,但它们在设计理念、性能和使用方式上有一些重要的区别。下面是对它们的详细对比: 1. 概述 Tailwind CSS:Tailwind 是一个原子化的 CSS 框架,提供了大量的预定义类(…...

unity3d————范围检测

目录 知识点一:什么是范围检测 知识点二:如何进行范围检测 问题: Physics.queriesHitTriggers 怎么查看是不是true? QueryTriggerInteraction.UseGlobal 参数意味着是否检测触发器将依据全局设置 Physics.queriesHitTrigge…...

修改this.$confirm的按钮位置、图标、文字及标题

在Vue.js项目中,this.$confirm 通常是基于某些UI库(如Element UI或Ant Design Vue)的对话框确认方法。 以下是基于Element UI的this.$confirm的用法示例。 在此之前,你的项目要已经安装了Element UI,如果没安装话就打…...

SQL MID() 函数详解

SQL MID() 函数详解 SQL 中的 MID() 函数是一个非常有用的字符串处理工具,它允许用户从字符串中提取特定位置的子字符串。这个函数在数据库查询和报告中特别有用,尤其是在需要从较长的文本字段中提取特定信息时。本文将详细介绍 MID() 函数的用法、参数…...

【蓝桥杯备赛】123(前缀和的复杂应用)

5. 前缀和的复杂应用 5.1. 123(4 星) 5.1.1. 题目解析 这道题仍然是求一段区间的和,很容易能够想到前缀和找规律: 1------------------1 号块 1 2----------------2 号块 1 2 3--------------3 号块 1 2 3 4------------4 号…...

MINES

MINES (m)6A (I)dentification Using (N)anopor(E) (S)equencing Tombo(v1.4) 命令在 MINES 之前执行: (仅在 fast5 文件中尚未包含 fastq 时需要) tombo preprocess annotate_raw_with_fastqs --fast5-basedir /fast5_dir/ --fastq-file…...

H.265流媒体播放器EasyPlayer.js H5流媒体播放器关于如何查看手机端的日志信息并保存下来

现今流媒体播放器的发展趋势将更加多元化和个性化。人工智能的应用将深入内容创作、用户体验优化等多个方面,带来前所未有的个性化体验。 EasyPlayer.js H.265流媒体播放器属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放&#…...

uni-app快速入门(十一)--常用JS API(上)

在前面学习了uni-app的布局、组件、路由等知识点以后,还要掌握uni-app的JS API ,也可以理解为基于uni-app的java script。本节介绍uni-app的request请求、文件上传、数据缓存、获取位置、获取系统信息、获取手机的网络状态、拨打电话API。 一、request请求 使用uni…...

Flink任务提交到yarn上slot数量为0的问题

现象:Flink提交到yarn上slot数量为0的问题 解决方法: 参考论坛上的方案,修改flink-conf.yaml文件都不管用 最终解决方法: $FLINK_HOME/lib 路径下有2个非.jar结尾的文件,把这几个文件移走之后,再启就可…...

vue3怎么根据字符串获取组件实例

例子: 我在使用vue2开发的时候,定义了一个方法 handler(strRef){ this.$refs[strRef].innerText hello world }, 我在点击某个按钮的时候,调用了方法handler,传递了一个参数是字符串 condition,然后方法…...

ISUP协议视频平台EasyCVR私有化视频平台新能源汽车充电停车管理方案的创新与实践

在环保意识提升和能源转型的大背景下,新能源汽车作为低碳出行的选择,正在全球迅速推广。但这种快速增长也引发了充电基础设施短缺和停车秩序混乱等挑战,特别是在城市中心和人口密集的居住区,这些问题更加明显。因此,开…...

从入门到上岗,Java+AI 复合型人才养成攻略

当下编程行业格局正在悄然改变,纯 Java 后端岗位内卷日趋严重,薪资增长逐步放缓;纯粹的 AI 算法岗门槛居高不下,对学历、数理功底要求严苛,普通开发者很难入局。 而Java+AI 复合型开发顺势成为行业刚需岗位,既依托成熟的 Java 体系承接业务开发,又能融入人工智能技术实…...

C语言双端队列完整实现:一行代码吃透头尾操作,算法效率拉满

一、为什么C语言实现双端队列,是数据结构的必学天花板?在C语言数据结构里,队列、栈都是基础中的基础,但真正能把灵活度、效率、内存管理三者揉到一起的,还得是双端队列(deque)。普通队列只能一头…...

嵌入式快速原型开发:基于Sceptre平台与LPC2148的实战指南

1. 项目概述:Sceptre,一个被低估的嵌入式快速原型利器 在嵌入式开发的世界里,我们总是在寻找那个“刚刚好”的平台:它要足够强大,能跑复杂的算法;要足够小巧,能塞进各种外壳;要足够便…...

2026年一键生成论文工具对比实测:5款神器从选题到格式全流程护航

写论文的焦虑,是每个科研人和学生都心照不宣的“隐形压力”。选题无从下手,文献检索耗时费力,逻辑框架反复推翻,格式排版让人抓狂,查重降重更是像在和系统玩“猫鼠游戏”。2026年的AI工具早已不是过去那种“打字机”&a…...

掌握Umi-OCR:5分钟上手开源免费离线文字识别工具

掌握Umi-OCR:5分钟上手开源免费离线文字识别工具 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。…...

【C++】零基础入门 · 第 4 节:循环结构(while、for、do-while)

上一节我们学习了条件判断,这一节来学习循环结构。循环让程序能够重复执行某段代码,直到满足特定条件为止。C 提供了三种循环语句:while、for 和 do-while。 1. while 循环:先判断后执行 while 循环在每次执行前先检查条件&#x…...

JMeter实现RSA签名验签全流程实战

1. 为什么RSA加密接口测试总卡在“连通但失败”这一步? 你有没有遇到过这种情况:接口文档写得清清楚楚,Postman里填好URL、Header、Body,一发请求——返回 {"code":4001,"msg":"签名验证失败"} …...

如何高效实现Windows自动化鼠标点击:AutoClicker完整实战指南

如何高效实现Windows自动化鼠标点击:AutoClicker完整实战指南 【免费下载链接】AutoClicker AutoClicker is a useful simple tool for automating mouse clicks. 项目地址: https://gitcode.com/gh_mirrors/au/AutoClicker AutoClicker是一款专业的Windows桌…...

022、FFT加速卷积:何时使用?何时不用?

022、FFT加速卷积:何时使用?何时不用? 去年调一个边缘检测模型,在Cortex-M7上跑3x3卷积,帧率死活上不去。同事说“试试FFT加速”,我心想3x3这种小核用FFT不是脱裤子放屁?结果他真改了一版,跑出来比直接卷积还慢三倍。后来查ARM CMSIS-DSP的文档,发现人家明确写了:FF…...

OpenClaw 源码解析(六):openclaw agent 如何触发一次 Agent 运行?

1. 本期要解决的问题 前几期我们已经从项目整体结构、CLI 命令体系、配置加载、Gateway 运行机制等角度理解了 OpenClaw 的基础框架。到了这一期,可以进一步进入 OpenClaw 最核心的使用动作:用户在终端中执行一条 openclaw agent --message "...&q…...