shell脚本2

变量

变量是在程序中保存用户数据的一段内存存储空间,变量名是内存空间的首地址
字母、数字、下划线组成,不能以数字开头
原则:直接使用,不需要变量声明
格式:变量名 = 变量的值

环境变量

关闭窗口即会失效
若要永久生效,再 ~/.bashrc上编辑
若要所有用户都生效,需再/etc/bashrc编辑
(编辑都需要再root用户下)
alias用法

位置变量

概念:当一条命令或脚本执行时,后面可以跟多个参数,可以使用位置变量来表示该参数
当执行 test1.sh 脚本时,第一个参数为 hello 到第四个参数可以使用特殊的符号表示,如: $1 $2 $3
……
常见的位置变量
例:
sh test1.sh hello world 123 456
1
$0 : 脚本名
$1 - $9 : 1 -9 个参数
${10} :10 以上的参数需要大花括号括起
$* : 所有参数
$@ : 所有参数
$# : 参数个数
$$ : 当前进程的 PID
$! : 上一个后台进程的 PID
$? : 上一个命令的返回值状态码, 0 为成功

变量赋值

$( )=``

四种变量赋值方法

常量直接赋值,read命令键盘输入,使用位置参数,反引号或$()读取命令

shell中默认变量是全局变量

变量的运算

[root@server ~] # expr 1 + 1 # 注意 + 左右必须要有空格
2
[root@server ~] # expr 1+1 # 否则原样显示
1 + 1
[root@server ~] # a=1
[root@server ~] # b=2
[root@server ~] # expr $a + $b # 支持变量
3
[root@server ~] # let num=1+2 # let+echo 等价于 expr
[root@server ~] # echo $num
3
[root@server ~] # let num=1 + 2 # 注意 let 中运算符左右不能由空格
-bash : let: + :语法错误 : 需要操作数 ( 错误符号是 "+" )
[root@server ~] # echo $((1+2))
3
[root@server ~] # echo $((5%3))
2
[root@server ~] # echo $((3%5))
3
[root@server ~] # echo $((1-5))
-4
[root@server ~] # echo $((2 * 5)) # 可以有空格
10
[root@server ~] # echo $((5.2-5)) # 只支持整数运算
-bash : 5 .2-5 :语法错误 : 无效的算术运算符 ( 错误符号是 ".2-5" )
[root@server ~] # echo $[2+3] # [] 等价于 (())
5
[root@server ~] # echo $[2.5+3] # # 只支持整数运算
-bash : 2 .5 + 3 :语法错误 : 无效的算术运算符 ( 错误符号是 ".5+3" )

双圆括号不支持小数,只支持整数

# 返回变量长度
[root@server ~] # str1="hello world"
[root@server ~] # echo ${#str1}
11

有了负号后,从最右边开始截,仍是向右截

精准查找

MIB进制1024,MB1000

查看命令是否执行成功

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Ubuntu】远程连接乌班图的方式-命令行界面、图形界面

​​​​​​系统环境:ubuntu-22.04.2-amd64.iso 连接工具:MobaXterm、windows自带远程桌面mstsc.exe 重置root密码:Ubuntu默认root密码是随机的,需要使用命令sudo passwd 进行重置。 一、命令行界面-SSH连接 1.1 SSH服务安装 …

数据的属性与相似性

目录 一、数据集的结构(一)二维表(二)数据矩阵 二、属性的类型(一)连续属性(二)离散属性(三)分类属性(四)二元属性(五&…

CentOS 镜像下载

CentOS 镜像下载:https://www.centos.org/download/ 选择合适的架构,博主选择x86_64,表示CentOS7 64位系统x86架构,如下: 或者直接访问以下网站下载 清华大学开源软件镜像站:https://mirrors.tuna.tsin…

国产低代码工具,轻松搞定数据迁移

在日常的业务系统升级或者数据维护过程中,数据迁移是各个企业用户不得不面临的问题,尤其是数据迁移过程中要保障数据完整性、统一性和及时性,同时也需要注意源数据中的数据质量问题,比如缺失、无效、错误等问题,需要在…

安全大脑与盲人摸象

21世纪是数字科技和数字经济爆发的时代,互联网正从网状结构向类脑模型进行进化,出现了结构和覆盖范围庞大,能够适应不同技术环境、经济场景,跨地域、跨行业的类脑复杂巨型系统。如腾讯、Facebook等社交网络具备的神经网络特征&…

实验1 eNSP安装与使用

实验1 eNSP安装与使用 一、 原理描述二、 实验目的三、 实验内容四、 实验步骤1.下载并安装eNSP2.eNSP软件界面3.搭建并运行网络拓扑4. Wireshark 捕获分组并分析 一、 原理描述 eNSP(Enterprise Network Simulation Platform)是由华为提供的免费网络模…

JDK1.8的安装及环境变量的配置

下载路径: Java Downloads | Oracle 选择对应的操作系统进行下载 1:在D盘新建一个名称为Java的文件夹 [如果你下载的不是这个版本的请自行修改文件夹名称,如版本jdk1.8.0则文件夹名为jdk1.8.0] 2:复制红色框中的名称并在刚刚新建Java文件夹…

【攻防世界】wife_wife

原型链污染 源码 app.post(/register, (req, res) > {let user JSON.parse(req.body)if (!user.username || !user.password) {return res.json({ msg: empty username or password, err: true })}if (users.filter(u > u.username user.username).length) {return …

新平台上线需要注意哪些?

最近有很多被黑客攻击的老板问我前期平台上线安全防护方面需要注意哪些?下面就给大家讲一下。1、如果前期不打算上高防产品,数据一定要做好备份,否则一旦数据被篡改或者被加密,恢复都是比较困难的,甚至都没有办法恢复。…

【简单讲解下WebView的使用与后退键处理】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

使用QtChart绘制一个折线图

记录一下&#xff0c;以备以后查阅 效果图&#xff1a; #include "mychart.h" #include <QLineSeries> #include <QChart> #include <QChartView> #include <QBoxLayout> #include <QtMath>QT_CHARTS_USE_NAMESPACE MyChart::MyChart…

嵌入式:第一天(c语言入门)

目录 一、C语言是什么 二、基础语法 2.1 第一个C语言程序 2.2 注释 2.3 数据类型 数据类型介绍&#xff1a; 变量&#xff1a; 变量的语法&#xff1a; 使用特点&#xff1a; 命名规则和规范&#xff1a; 命令规范&#xff1a; char类型&#xff1a; Boolean类型&…

2024-04-08

作业要求&#xff1a; 1> 思维导图 2>使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否…

vue项目中使用html2canvas 下载当前页面(动态页面宽度、高度)

老规矩先上效果图: 需求1、 只要上图红色区域的内容下载&#xff0c;就需要计算红色区域的内容的动态宽度、高度。 需求2、当前页面可视区域的内容下载&#xff0c;上传按钮下面的所有内容。 一、 安装依赖 &#xff1a;安装html2canvas插件 npm isntall html2canvas 或者…

[渗透利器]在线渗透测试工具箱?测评

前言 hxd更新完了在线工具箱&#xff0c;受邀写一下使用体验以及测评 使用体验 这个工具箱设计的比较轻便&#xff0c;以往用过的工具箱大多都是以离线打包的方式发布&#xff0c;该工具箱&#xff0c;作者自己掏钱自己买服务器&#xff0c;自己买带宽&#xff0c;先生大义。…

[闲聊统计]之参数估计是什么?(下)

我们在前面说了一下参数估计中的点估计&#xff0c;接下来&#xff0c;我们来讲一下区间估计。 区间估计——在点估计的基础上&#xff0c;给出总体参数估计的一个估计区间&#xff0c;该区间由样本统计量加减估计误差而得到。 置信水平——如果将构造置信区间的步骤重复多次&a…

三:synchronized 关键字

目录 1、共享带来的问题2、synchronized 用法3、类加载器对 Class 锁的影响4、synchronized 实现原理4.1、同步方法、同步代码块4.2、对象内存布局4.3、Monitor 对象定义 5、synchronized 与原子性6、synchronized 与可见性7、synchronized 与有序性8、synchronized 锁升级8.1、…

UDS(ISO14229) ———— 0x10(DiagnosticSessionControl)

前言 在UDS协议中,我们首先接触到的是诊断和通信管理功能单元(Diagnostic and communication management functional unit)模块。在这个模块里面,DiagnosticSessionControl是我们第一个需要掌握的内容。 按照ISO 14229上面的划分,我们可以将诊断会话模式分为两大类; 一类…

Pytest精通指南(02)对比Unittest的差异

文章目录 前言用例编写规则不同用例前置与后置条件不同断言功能不同测试报告失败重跑机制参数化用例分类执行Unittest 前后置示例Pytest 前后置示例总结 前言 在Python中&#xff0c;unittest和pytest是两个主流的测试框架&#xff1b; 它们都旨在支持自动化测试、使用断言验证…

通信分类3G,4G,5G,通信专用名词

Generation: 2G: GSM全名为&#xff1a;Global System for Mobile Communications&#xff0c;中文为全球移动通信系统&#xff0c;俗称"全球通"&#xff0c;是一种起源于欧洲的移动通信技术标准&#xff0c;是第二代移动通信技术 3G&#xff1a;WCDMA 4G&#xff1a…