Linux系统的shell脚本——变量

文章介绍了Shell脚本中的四种变量类型:用户自定义变量,位置变量,预定义变量和环境变量。用户自定义变量无数据类型,可直接使用。位置变量对应命令行参数,预定义变量如$#表示参数个数,$@和$*用于获取所有参数。环境变量是全局变量,如SHELL存储命令解释器路径,PATH指定命令查找路径。
摘要由CSDN通过智能技术生成

一、shell变量的类型

shell脚本变量的类型一般由一下几种类型:

1、用户自定义变量

用户自定义变量顾名思义就是用户自己定义的变量,shell脚本没有数据类型,所有变量均被理解为字符串。所以变量可以无需定义直接使用,就像python中定义变量一样。

变量的使用方法:变量名=数值(字符串)

定义变量时需要注意的几点:

1)、变量的命名:变量的命名可以由数字、字母、下划线构成,但不能以数字开头。

2)、变量的赋值:变量赋值时等号左右两端不能出现空格。赋值的时候可以使用单引号或者双引号进行包覆,如:val1="abc"  val2='abc'。在单引号或者双引号内可以存储包含空格的字符串,比如:val3="hello world"。如果不加引号变量只会存储空格之前的字符串,遇到空格就会结束。

3)、可以在双引号包覆的字符串内引用变量,而单引号会原样输出,举个例子:有如下变量

val1="abc"   val2='abc' 

val3="hello world $val1" 

 val4='hello world $val1'

如果输出val3 会输出hello world abc 

输出val4则会输出hello world $val1

2、位置变量

简单来说位置变量类似于命令行参数。就比如你在终端输入命令 ls 可以带参数 -l -a等,位置变量就类似于这里的 l ,a

位置变量用"$数字" 表示,例如:$1,$2,$3……$n

$0表示脚本文件的文件名,$1表示命令行第一个参数,$2表示命令行第二个参数...以此类推。

在命令行传参的时候可以用双引号包覆传递存在空格的字符串!

3、预定义变量

预定义变量表示用一些特殊的字符存储一些特定的数据。预定义变量有以下几种:

1)$#:表示记录命令行参数的个数,不会记录$0

2)$@:表示记录所有的命令参数,不包含$0

3)$*:同&@功能相同

4)&?:返回上一条命令的结果。shell中0表示真,1表示假

4)$$:获取执行当前脚本的进程的进程ID。值得注意的是,执行该脚本文件的进程是由当前终端的子终端创建的,虽然我们获取到了进程ID,但是我们查看不到此进程,因为在脚本执行完成后,该进程就已经结束了。

4、环境变量

shell中的环境变量也就是全局变量。在shell中的环境变量在内存中存储有关shell会话和工作环境的数据,以便shell或者程序运行的脚本能够访问到他们。

在终端上使用shell命令:env可以查看当前系统中的所有环境变量。

 其中举例几个环境变量的作用:

1):SHELL:命令解释器路径

2):HOME:用户的主目录路径

3):USERNAME:用户名

4):PATH:命令执行查找的默认路径(命令解释器查找的默认路径)

5):PWD:当前终端操作的绝对路径,PWD和pwd区分开来,PWD表示的是环境变量,而pwd是shell命令。

shell变量的引用

变量的引用需要加上$符号,echo表示变量数据的输出。

方法:echo $变量名

 以上就是shell命令的变量的类型,包括如何使用变量。本人萌新,如果错误和补充还请大佬们在评论区指出错误以及做出补充,跪谢。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值