Linux Shell编程系列--变量的定义与使用

一、目的

        上一篇我们简单介绍了shell脚本的组成以及如何运行一个shell脚本,本篇将详解讲解shell中的变量。在Shell脚本中,变量是用来存储和处理数据的基本结构。

二、介绍

        1、定义变量

                变量名与等号(=)后跟值来定义一个变量,变量名称与值之间只有一个"="(绝对不能有空格)。

                变量名与等号之间不能有空格,但赋值内容可以包含空格,如果值本身含有空格或特殊字符,应将整个变量引用用双引号包围起来。         

        

                上图中定义了三个变量,第一个变量使用单引号''包含其字符串值;第二个使用双引号""包含其字符串值;第三个变量其值也是字符串;第四个字符串是一个数值(但其还是字符串)。

                当你给一个变量赋值时,无论赋值的内容是什么类型的数据(数字、文本或特殊字符),Shell都会将其作为字符串来处理。

 

        2、引用变量

                使用美元符号"$"引用变量的值;如果变量名包含特殊字符或者与后续字符无明显分隔时,可以使用花括号 {} 来包裹变量名以避免歧义。                

        上图中列举了打印变量my_var_three的几种方法,需要特别注意的是如果变量名和打印内容粘连在一起,此时必须添加花括号,否则会认为是一个新的变量名。

        上图中的执行结果如下:

 

        3、只读变量 

                通过指定readonly关键字可以定义只读变量。

 

        对只读变量赋新值,执行时会报错。

        上图中对只读变量赋新值直接显示报错。

        4、 删除变量

                使用 unset 命令可以删除已定义的变量。

                 

                unset之后再打印此变量则显示未空(即该变量未定义)

 

        5、命令替换

                即将命令的执行结果直接作为变量的值,有两种方式:

  • 使用反引号
  • 使用$(command)形式               

 

         

        6、环境变量 

                环境变量是一种特殊的Shell变量,它们不仅对当前Shell进程可见,还会被子进程继承。 shell脚本中可以引用环境变量的值,也可以将变量导出为环境变量。

                使用环境变量

        

 

                导出环境变量

export my_var_four="abc"
export my_var_four #在一个已经定义了值的变量基础上进行导出

        7、局部变量和全局变量 

                Shell脚本中没有严格的局部变量概念,但在函数内部定义的变量通常只能在该函数内部访问。环境变量就是全局变量。

        8、数组变量

                Bash支持一维数组,可通过索引引用其元素。

 

               

        以上,就是shell脚本的基本内容。         

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java入门之JavaSe(韩顺平p1-p?)

学习背景: 本科搞过一段ACM、研究生搞了一篇B会后,本人在研二要学Java找工作啦~~(宇宙尽头是Java?)爪洼纯小白入门,C只会STL、python只会基础Pytorch、golang参与了一个Web后端项目,可以说项目小…

陪诊系统|陪诊小程序|陪诊服务让就医更容易

陪诊系统已经出现了好几年。尤其是这两年,它得到了人们的广泛认可。陪诊行业的快速发展主要是因为人们对这个行业的需求非常大。目前,我国面临着严重的老龄化问题,生活节奏也越来越快,有时候无法亲自陪伴在老人的身边。陪诊工作人…

【详解】斗地主随机发牌项目

目录 前言: 1.初始化牌 2.洗牌 3.揭牌 总代码: Card类: CardGame类: Main类: 结语: 前言: 斗地主是全国范围内的一种桌面游戏,本节我们来实现一下斗地主中的简单初始化牌、…

mfc110.dll是什么?解决mfc110.dll丢失windows系统常见问题

今天我在打开电脑软件时候,突然报错出现找不到mfc110.dll丢失,无法打开软件,我不知道是什么原因,后面找了很久才找到解决方法,那么mfc110.dll是什么?为什么会丢失和mfc110.dll解决方法是什么,今…

基础面试题整理6之Redis

1.Redis的应用场景 Redis支持类型:String、hash、set、zset、list String类型 hash类型 set类型 zset类型 list类型 一般用作缓存,例如 如何同时操作同一功能 2.redis是单线程 Redis服务端(数据操作)是单线程,所以Redis是并发安全的,因…

LeetCode-第876题-链表的中间结点

1.题目描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。 2.样例描述 3.思路描述 创建两个快慢指针 slow , fast ,起始共同指向头节点,slow 每次走一步,fas…

子集枚举介绍

集合枚举的意思是从一个集合中找出它的所有子集。集合中每个元素都可以被选或不选,含有n个元素的集合总共有个子集(包括全集和空集) 例如考虑集合和它的4个子集、、、,按照某个顺序,把全集A中的每个元素在每个子集中的…

【数据开发】pyspark入门与RDD编程

【数据开发】pyspark入门与RDD编程 文章目录 1、pyspark介绍2、RDD与基础概念3、RDD编程3.1 Transformation/Action3.2 数据开发流程与环节 1、pyspark介绍 pyspark的用途 机器学习专有的数据分析。数据科学使用Python和支持性库的大数据。 spark与pyspark的关系 spark是一…

Mac OS中创建适合网络备份的加密镜像文件:详细步骤与参数选择

这篇文章提供了在Mac OS中创建适合网络备份的加密镜像文件的详细步骤,同时探讨了在选择相关参数时的关键考虑因素,以确保用户能够安全、高效地存储和保护重要数据。 创建步骤 在Mac OS Monterey中,你可以使用“磁盘工具”(Disk …

C++_多态

目录 1、什么是虚函数 1.1 什么是虚函数重写 1.2 虚函数的继承 1.3 协变 1.4 析构函数的重写 2、override和final 2.1 final 2.2 override 3、纯虚函数/抽象类 3.1 接口继承和实现继承 4、多态的原理 前言: 在C中,多态指的是调用同一个类的…

深度学习图像分类相关概念简析+个人举例3(CNN相关补充,附详细举例代码1)

【1】激活函数(Activation Function):在深度学习(CNN)中,激活函数用于引入非线性性质,帮助模型学习复杂的关系。常见的激活函数有ReLU、Sigmoid和Tanh等。 (1)ReLU激活函…

【HTML】MDN

文章目录 一、html元素1.1 <a>1.2 <abbr>1.3 <address>1.4<area>1.5 <article>1.6 <aside>1.7 <audio>1.8 <b>1.9 <base>1.10<bdi>1.11 <bdo>1.12 <blockquote>1.13 <body>1.14 <br>1.15…