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私有化视频平台新能源汽车充电停车管理方案的创新与实践
在环保意识提升和能源转型的大背景下,新能源汽车作为低碳出行的选择,正在全球迅速推广。但这种快速增长也引发了充电基础设施短缺和停车秩序混乱等挑战,特别是在城市中心和人口密集的居住区,这些问题更加明显。因此,开…...
统信UOS 1060e内网离线安装Docker保姆级教程(附CentOS 8 RPM包下载)
统信UOS 1060e内网离线安装Docker全流程实战指南 在企业级IT基础设施中,内网环境下的软件部署一直是运维工程师面临的特殊挑战。当服务器完全隔离于互联网时,每一个依赖包、每一条配置指令都可能成为阻碍系统正常运行的潜在障碍。本文将深入探讨在统信UO…...
告别Makefile!用Zig 0.10.0自带的构建系统搞定ARM裸机开发(附完整项目配置)
用Zig构建系统重塑ARM裸机开发:告别Makefile的终极指南 当你在凌晨三点盯着第47个Makefile规则调试链接器错误时,是否想过——嵌入式开发必须这么痛苦吗?Zig 0.10.0带来的不仅是一门新语言,更是一套彻底革新裸机开发工作流的构建系…...
保姆级教程:用Android 12新特性为你的App打造丝滑启动页(附完整代码示例)
Android 12启动页开发实战:从基础配置到高级动画优化 在移动应用体验中,启动页作为用户接触产品的第一印象,其流畅度直接影响用户留存率。Android 12引入的SplashScreen API为开发者提供了标准化且高度可定制的启动解决方案,本文将…...
别再只会用IP核了!手把手教你用Verilog RTL代码实现一个简单的RAM(附仿真对比)
从寄存器阵列到存储矩阵:Verilog RTL实现RAM的底层逻辑与工程实践 在FPGA和数字IC设计中,RAM(随机存取存储器)如同数字世界的记事本,承载着数据暂存与交换的关键使命。许多工程师习惯于直接调用供应商提供的IP核&#…...
16-bit像素艺术AI终端效果展示:实时HUD状态栏+物理位移反馈动效演示
16-bit像素艺术AI终端效果展示:实时HUD状态栏物理位移反馈动效演示 1. 像素幻梦创意工坊概览 Pixel Dream Workshop(像素幻梦创意工坊)是一款革命性的像素艺术生成工具,基于先进的FLUX.1-dev扩散模型构建。与传统AI绘图工具不同…...
如何通过League-Toolkit实现高效游戏辅助:从入门到精通的智能全攻略
如何通过League-Toolkit实现高效游戏辅助:从入门到精通的智能全攻略 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit L…...
【跟韩工学Ubuntu第5课】-第5章 网络管理:Netplan、路由与防火墙-004篇-Ubuntu Server 网络管理:进阶配置、优化与实战诊断
文章目录 Ubuntu Server 网络管理:进阶配置、优化与实战诊断 (扩容优化版 | 适配高校教学+生产实战 | 30页核心内容) 5.1 网络基础:深入理解与实践查看(扩容+优化) 一、核心概念进阶(新增计算案例+场景区分) 二、必备诊断命令(新增高频参数+中文注释) 三、IPv6 完整配…...
5步征服显存难题:多语言MiniLM模型量化优化实战指南
5步征服显存难题:多语言MiniLM模型量化优化实战指南 【免费下载链接】paraphrase-multilingual-MiniLM-L12-v2 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/paraphrase-multilingual-MiniLM-L12-v2 1. 诊断显存瓶颈 在部署paraphrase-multili…...
从零到一:在本地CentOS环境完整部署yshop-drink扫码点餐系统的实战指南
1. 环境准备:从零搭建CentOS基础系统 第一次在本地部署yshop-drink扫码点餐系统时,我选择了CentOS 7.9作为基础环境。这个版本既稳定又兼容大多数现代软件包,特别适合作为生产环境使用。建议直接使用阿里云镜像站下载Minimal版本ISO文件&…...
使用xrdp实现Windows远程桌面无缝连接WSL2中的Ubuntu24.04
1. 为什么需要远程桌面连接WSL2? 很多开发者习惯在Windows系统上使用WSL2运行Ubuntu进行开发工作,但默认情况下WSL2只提供命令行界面。虽然大多数开发任务可以通过命令行完成,但有些场景下图形界面会更方便: 运行需要GUI的应用程…...
