<Linux>shell变量

一、Shell变量分类

1、内部变量:由系统提供,用户只能使用不能修改
	
2、用户变量:由用户建立和修改,在shell脚本编写中会经常用到

3、环境变量:这些变量决定了用户工作的环境,它们不需要用户去定义,可以直接在shell中使用,
其中某些变量用户可以去修改

二、用户自定义变量

1、定义变量及变量赋值

varName=Value
export varValue=Value

2、引用变量 $VarName

  • 一般地,所有的Shell变量都是字符串。
  • “=”是赋值符号,两边不能直接跟空格,否则命令无效。
  • 当变量的值仅仅包含数字时才允许进行数值计算。
  • 在较新的bash 中,可是使用declare 或typeset 命令声明变量及其属性,但一般不需要声明。而且为了使脚本兼容于不同的shell,在没有必要的情况下尽量不使用变量声明。

三、引用

  • 在bash 中,有些字符具有特殊含义,如果需要忽略这些字符的特殊含义,就必须使用引用技术。
  • 引用可以通过下面三种方式实现:
    1、 使用转义字符:\
    2、 使用单引号:‘’
    3、使用双引号:“”
  • 转义字符的引用方法就是直接在字符前加反斜杠。例:\\$,\‘,\“,\\,\,\!

四、强引用与弱引用

1、强引用

  • 单引号对是强引用
  • 单引号对中的字符都将作为普通字符,但不允许出现另外的单引号。

2、弱引用

  • 双引号对是弱引用
  • 双引号对中的部分字符仍保留特殊含义
    ①$(美元符号)-变量扩展
    ②`(反引号)-命令替换
    ③\(反斜线)-禁止单个字符扩展
    ④ !(叹号)-历史命令替换

举例:
①单引号对中的$字符被作为普通字符,因此不具有特殊功能了
在这里插入图片描述

在这里插入图片描述

③变量也可以存放命令,不过这里是存放命令执行后的结果,不是每次运行后都会生成新的结果
在这里插入图片描述在这里插入图片描述

五、shell变量的作用域

1、局部变量的作用范围仅仅限制在其命令行所在的shell或shell脚本文件中

2、全局变量的作用范围则包括本Shell进程及其所有子进程

3、可以使用export 内置命令将局部变量设置为全局变量

4、可以使用export 内置命令将全局变量设置为局部变量

六、export命令

1、显示当前Shell可见的全局变量
export [-p]

2、定义变量值的同时声明为全局变量
export <变量名1=值1> [<变量名2=值2> ...]

3、声明已经赋值的某个(些)局部变量为全局变量
export <变量名1> [<变量名2> ...]

4、声明已经赋值的某个(些)全局变量为局部变量
export -n <变量名1> [<变量名2> ...]

5、Shell的子进程修改变量之后不会传给父Shell

七、Shell环境变量

1、环境变量定义Shell 的运行环境,保证Shell 命令的正确执行

2、Shell用环境变量来确定查找路径、注册目录、终端类型、终端名称、用户名等

3、所有环境变量都是全局变量(即可以传递给Shell 的子进程),并可以由用户重新设置

八、常见的Shell环境变量

在这里插入图片描述

九、Shell变量的查询、显示和取消

1、显示当前已经定义的所有变量

①所有环境变量:env
②所有变量和函数(包括环境变量):set

2、显示某(些)个变量的值
echo $NAME1 [$NAME2 ……]

3、取消变量的声明或赋值
unset<NAME>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值