Shell脚本------变量

news2024/10/6 6:04:22

目录

一、shell脚本的变量

1、shell脚本的变量是什么?

2、变量的作用

3、变量作用范围

3.1、临时设置

3.2永久设置,需要在/etc/profile文件里添加

4、删除变量

5、变量基础

6、变量命名要求

7、特殊符号

8、整数运算

9、expr算术表达式

二、特殊变量

1、预定义变量

2、环境变量

3、位置变量

三、test

1、test:测试表达式是否成立  成立则为0    不成立则为1

2、[操作符  条件表达式]

3、整数的数值的比较

举例1、比较两个整数的大小

举例2、查看系统内存是否低于1024m,低于则提示

举例3、查看当前目录下的文件数是否大于10 如果大于,则进行提示

4、字符串比较

举例

5、逻辑测试(短路运算)


一、shell脚本的变量

1、shell脚本的变量是什么?

变量是计算机语言中能储存计算结果或能表示值的抽象概念。保存将来会变化的数据,即使数据变化,直接调用变量即可。

shell变量用来存放系统和用户需要使用的特定参数,而且这些参数可以根据用户的设定或系统环境的变化响应变化。通过使用变量,shell程序能够提供更加灵活的功能,适应性更强。

2、变量的作用

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

①变量名:使用固定的名称,由系统预设或用户定义

②变量值:能够根据用户设置,系统环境的变化而变化

3、变量作用范围

默认情况下,新定义的变量只在当前的shell环境中有效,因此被称为局部变量。当进入子程序或新的子shell环境时局部变量将无法在使用。

可以通过内部命令export将指定的变量导出为全局变量,使用用户定义的变量在所有的子shell环境中能够继续使用。

格式:
export 变量名=变量值

3.1、临时设置

3.2永久设置,需要在/etc/profile文件里添加

vim /etc/profile
export PATH+=:/mnt
[root@localhost data]#source /etc/profile
[root@localhost data]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/data:/mnt

4、删除变量

unset 加变量名

5、变量基础

定义变量:变量名=变量值

调整变量:echo$变量名

取消变量:unset变量名

追加变量:变量名+=追加的内容

export变量 可以让子进程也可以使用变量

6、变量命名要求

1、区分大小写

2、不能使用数值开头

7、特殊符号

①双引号""可以识别变量

②单引号''不能识别变量

③反撇号:命令替换,提取命令执行后的输出结果和$(...)相同

④{}:定义变量名的范围

read -p 从键盘输入的内容变成变量

8、整数运算

运算符号:+-/*\%(取余数)

9、expr算术表达式

let 变量名=变量一运算符号 变量二

echo $变量名

变量名=$[算术表达式]

echo $变量名

(变量名=算术表达式)

echo $[RANDOM] 取随机数 范围是0-32767

echo $[RANDOM%33] 取0-32 的随机数

echo $[RANDOM%33+1] 取1-33的随机数

二、特殊变量

1、预定义变量

 $*      返回所有的位置参数,所有参数当作一个整体返回

               $@    返回所有的位置参数,所有参数当作个体返回

               $?      表示前一条命令执行的返回状态,返回值为0表示正确,返回任何非0值均表示出现异常

               $#      表示命令行中位置参数的总个数

               $0       表示当前执行的脚本或程序的名称

               $$        当前bash的进程id

               $!        后台任务最后一个id

2、环境变量

env 看到所有的环境变量

                 $USER 表示用户名称

                 $HOME 表示用户的家目录

                 $LANG  表示语言和字符集

                 $PWD    表示当前所在工作目录

                 $PATH    表示可执行用户程序的默认路径

3、位置变量

位置变量也称为位置参数,使用$1 $2 $3 ...$9 $0表示当前脚本的文件名称

三、test

1、test:测试表达式是否成立  成立则为0    不成立则为1

test [操作选项] 条件表达式

2、[操作符  条件表达式]

3、整数的数值的比较

格式[整数1 操作符 整数2]

常见的测试操作符号

操作符含义
-eq等于(Equal)
-ne不等于(Not Equal)
-lt小于(Leser Than)
-gt大于(Greater Than)
-le小于或等于(Lesser or Equal)
-ge大于或等于(Greater or Equal)
举例1、比较两个整数的大小

举例2、查看系统内存是否低于1024m,低于则提示

举例3、查看当前目录下的文件数是否大于10 如果大于,则进行提示

4、字符串比较

格式:
[ "字符串1" = "字符串2" ] 			#判断是否相等
[ "字符串1" != "字符串2" ] 			#判断是否不等
[ -z "字符串" ]                     #判断字符串内容是否为空
[ -n "字符串" ]                     #判断字符是否存在
举例

5、逻辑测试(短路运算)

  • -a或&&:逻辑与,“而且”的意思全真才为真
  • -o或||:逻辑或,“或者”的意思一真即为真
  • !:逻辑否
[ 表达式1 ] && [ 表达式2 ] 等同于 [ 表达式1 -a 表达式2 ] 等同于 [[ 表达式1 && 表达式2 ]] 
 
[ 表达式1 ] || [ 表达式2 ] 等同于 [ 表达式1 -o 表达式2 ] 等同于 [[ 表达式1 || 表达式2 ]] 

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

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

相关文章

如何在WordPress网站中添加多语言搜索(2种简单方法)

您想在WordPress网站中添加多语言搜索吗? 如果您有一个多语言 WordPress 网站,那么添加多语言搜索功能可以帮助用户通过使用自己的语言进行搜索来更快地找到信息。 在本文中,我们将向您展示如何在 WordPress 中轻松添加多语言搜索&#xff…

“深入理解RabbitMQ交换机的原理与应用“

深入理解RabbitMQ交换机的原理与应用 引言1. RabbitMQ交换机简介介绍1.1 什么是RabbitMQ?1.1.1 消息中间件的作用1.1.2 RabbitMQ的特点和优势 1.2 RabbitMQ的基本概念1.2.1 队列1.2.2 交换机1.2.3 路由键 1.3 交换机的作用和分类1.3.1 直连交换机(direct…

32、WEB攻防——通用漏洞文件上传二次渲染.htaccess变异免杀

文章目录 一、点过滤二、文件删除三、二次渲染四、.htaccess五、过滤php关键函数 一、点过滤 不能写带文件后缀的文件名;IP转数字 二、文件删除 文件依据规则进行删除,删除有两种删除的类型: 什么文件都删除,条件竞争进行绕过…

linux zabbix监控

zabbix总结 zabbix-server 10051 zabbix-agent 10050 zabbix-proxy 10051 1.监控项(模板):获取监控数据 #模板直接链接到新的主机 2.触发器:设置一个值 在非合理区间报警 3.动作:可以帮忙发送通知(告…

深入理解Python循环嵌套

循环嵌套是一种常见的编程技巧,它可以用于处理多维数据结构、模拟多层逻辑等场景。本文将深入探讨Python中的循环嵌套,包括基本语法、应用场景以及一些最佳实践。 循环嵌套的基本语法 在Python中,循环嵌套指的是在一个循环语句的内部再嵌套另…

Microsoft Remote Desktop for Mac(远程桌面连接)激活版

Microsoft Remote Desktop是一款由微软开发的远程桌面连接工具,它允许用户从另一台计算机或移动设备远程连接到Windows桌面或服务器。 以下是该软件的一些主要特点和功能: 跨平台支持:Microsoft Remote Desktop支持Windows、macOS、iOS和Andr…

蓝桥杯(C++ 最大开支 优先队列)

优先队列: 蓝桥杯(C 整数删除 优先队列 )-CSDN博客 思路: 1、每个人依此选择项目,每个人选项目时都(选择当下花费增加最多的项目),若项目i的门票价格为kxb,那么增加一个…

爬取的数据可以入表吗?怎样入表?

合规是数据入表的前提。当前爬虫数据是非常敏感的,因为爬虫极容易造成两大不合规的问题:一是没有经过个人同意获取数据,二是爬取的数据里可能含有个人敏感信息也是一个问题。现在法律对于这部分非常严苛,如果企业里有50条未获得授…

RHCE【报警脚本】

要求如下: 根分区剩余空间小于20% 发送告警邮件给自己 配合crond每5分钟检查一次脚本 报警脚本的具体实现如下: #安装mailx(邮件服务包)[rootlocalhost ~]# yum install mailx #编辑邮件系统文件[rootlocalhost ~]# vim /etc/mail.rc#首先注…

关于在Ubuntu20.04(ROS1 noetic)中使用catkin_make编译时发生的与pyhton版本不兼容的问题解决办法

今天在另外一台电脑上操作复现【ROS建模:一起从零手写URDF模型】这个博客时,发生了一些问题,特此记录下来 【ROS建模:一起从零手写URDF模型】链接:https://blog.csdn.net/qq_54900679/article/details/135726348?spm…

CodeWave智能开发平台-3--采购管理系统搭建完整版

摘要 本文是网易数帆CodeWave智能开发平台系列的第15篇,主要介绍了基于CodeWave平台文档的新手入门进行学习,实现一个完整的应用-采购管理系统。 CodeWave智能开发平台-3–采购管理系统搭建完整版 CodeWave参考资源 网易数帆CodeWave开发者社区课程中…

JFinal项目搭建

JFinal项目搭建 JFinal项目搭建 JFinal项目搭建 首先创建maven项目&#xff1a; 删掉报错的jsp页面&#xff1a; 在pom.xml中加入坐标&#xff1a; <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal-undertow</artifactId>…

【Redis】内存淘汰策略和过期删除策略

一、前言 Redis是一个内存键值对数据库&#xff0c;所以对于内存的管理尤为重要。Redis内部对于内存的管理主要包含两个方向&#xff0c;过期删除策略和数据淘汰策略。由于内存有限&#xff0c;缓存系统必须遵循一些淘汰策略来删除一些不再需要的键&#xff0c;以便为新键腾出…

【学习】FPN特征金字塔

论文&#xff1a;Feature Pyramid Networks for Object Detection &#xff08;CVPR 2016) 参考blog&#xff1a;https://blog.csdn.net/weixin_55073640/article/details/122627966 参考视频讲解&#xff1a;添加链接描述 卷积网络中&#xff0c;深层网络容易响应语义特征&am…

java对代码进行性能分析

使用Instant对象来完成 关键代码: 获取当前时间 Instant now Instant.now(); 获取当前时间距离1970-01-01 00:00:00的秒数 now.getEpochSecond() 完整测试代码 Scanner sc new Scanner(System.in);Instant now1 Instant.now();System.out.println("请随便输个东西:…

进程线程知识

一 初识linux线程 1 线程由来 我们之前说创建一个进程&#xff0c;要创建进程控制块pcb&#xff0c;进程地址空间&#xff0c;页表&#xff0c;而且我之前的博客中都有意无意的说明这个pcb是描述进程的&#xff0c;是os用来管理进程的&#xff0c;而有了线程后&#xff0c;就要…

软件测试|SQL常用语法,你都会吗?

前言 SQL作为一门语言&#xff0c;和其他编程语言一样&#xff0c;都是需要遵循一些特定的规范和准则的&#xff0c;这也就是我们常说的语法&#xff08;Syntax&#xff09;。 下面是几个SQL的语法规则&#xff1a; 所有的 SQL 语法都必须以关键字&#xff08;也称命令&…

品牌如何把“流量”转为“留量”,媒介盒子分享

如果品牌一味追逐流量只能抓住一时的红利期&#xff0c;因此品牌需要把“流量”转为“留量”。依靠流量红利快速崛起的红利品牌&#xff0c;在流量法则失效后&#xff0c;就会陷入增长困境&#xff0c;今天媒介盒子就来和大家聊聊品牌如何把“流量”转为“留量”。 一、 差异化…

力扣279. 完全平方数

动态规划 思路&#xff1a; 假设 dp[i] 为最少组成数 i 的平方数个数&#xff1b;则其上一个状态为 dp[i - j^2] 1&#xff0c;1 为 j^2&#xff1a; 即 i 的最少完全平方数 i - j^2 的最少完全平方数 1&#xff0c;其中 j^2 < i 为最接近 i 的平方数&#xff1b;初始值…

pikachu_ssrf攻略

ssrf&#xff08;curl&#xff09;&#xff1a; 打开pikachu靶场&#xff1a; http://127.0.0.1/pikachu-master/vul/ssrf/ssrf_curl.php?urlhttp://127.0.0.1/pikachu-master/vul/ssrf/ssrf_info/info1.php 发现URL地址最后面是info1.php 猜测一下有没有可能存在info2.php?…