shell变量

目录

1:定义变量

定义变量的三种形式

variable=a

variable='a'

variable="a"

三种变量定义都是可以的,稍微有所区别

""双引号定义的变量,里面可以添加变量参数,例如

echo "myname is $a"  其中a表示变量可以解析出来,而单引号是不行的

不带引号只能是一些常见的,中间没有空格的变量,否则shell是解析不出来的

2:解析变量

2.1:解析变量使用$或者${}来解析变量,他们的不同点如下:

echo "myname is $ahaha" 这里定义的变量是a但是a和haha写在一起来,shell会以为ahaha是变量,所以解析会报错

正确的操作方式如下:

echo "myname is ${a}haha"这种方式就可以正确的解析变量

3:变量的作用域

变量默认的作用域是全局变量,注意这里定义的全局变量,只是对当前的shell进程有效,也就是当前窗口,重新开个新窗口是无效的,当然子进程也是无效的

变量的三个作用域:

全局变量:a= "leilei"  当前进程有效,开启一个新窗口或者bash运行一下(会开启一个子进程),对子进程是无效的

本地变量:local a="leilei" 只对本地有效,比如在一个函数中,那么就在函数中有效,脱离函数是无效的

环境变量export a="leilei" 环境变量对子进程都是有效的,但是新开一个窗口也是无效的,也就是说子进程继承了父进程的环境变量

 

 

4:变量的命令替换

使用方式:a=$(command)

 

 当然也可以用``反引号,只是容易引起错误,且不支持嵌套,所以一般建议使用$()这样的形式

5:删除变量

unset variable_name

 

posted @ 2022-04-29 16:06  xzlnuli  阅读(20)  评论(0编辑  收藏  举报