Linux系统的shell脚本——变量

一、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表示命令行第二个参数...以此类推。

Linux系统的shell脚本——变量_第1张图片

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

3、预定义变量

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

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

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

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

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

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

Linux系统的shell脚本——变量_第2张图片

4、环境变量

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

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

Linux系统的shell脚本——变量_第3张图片

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

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

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

3):USERNAME:用户名

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

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

shell变量的引用

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

方法:echo $变量名

Linux系统的shell脚本——变量_第4张图片

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

你可能感兴趣的:(Linux,shell,linux,运维,服务器,ubuntu,centos)