Shell 从入门到精通 (二)变量

变量

1 系统预定义变量

1)常用系统变量

$HOME、$PWD、$SHELL、$USER 等

2)案例实操

(1)查看系统变量的值  

[root@centos7 sh]# echo HOME
HOME

 (2)显示当前 Shell 中所有变量:set  

[root@centos7 sh]# set
BASH=/bin/bash
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()

2 自定义变量

1)基本语法

(1)定义变量:变量名=变量值,注意,=号前后不能有空格

(2)撤销变量:unset 变量名

(3)声明静态变量:readonly 变量,注意:不能 unset

2)变量定义规则

(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建 议大写。

(2)等号两侧不能有空格

(3)在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算。

(4)变量的值如果有空格,需要使用双引号或单引号括起来

3)案例实操

(1)定义变量 A  

[root@centos7 ~]# A=5
[root@centos7 ~]# echo $A
5

(2)给变量 A 重新赋值  

[root@centos7 ~]# A=8
[root@centos7 ~]# echo $A
8

(3)撤销变量 A  

[root@centos7 ~]# unset A
[root@centos7 ~]# echo $A

(4)声明静态的变量 B=2,不能 unset  

[root@centos7 ~]# readonly B=2
[root@centos7 ~]# echo $B
2
[root@centos7 ~]# B=8
-bash: B: 只读变量

(5)在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算  

[root@centos7 ~]# C=1+2
[root@centos7 ~]# echo $C
1+2

(6)变量的值如果有空格,需要使用双引号或单引号括起来

[root@centos7 ~]# D=I love shell
bash: love: 未找到命令...
[root@centos7 ~]# D="I love shell"
[root@centos7 ~]# echo $D
I love shell

 (7)可把变量提升为全局环境变量,可供其他 Shell  

export 变量名
[root@centos7 ~]# 
 在 helloworld.sh 文件中增加 echo $B
#!/bin/bash
echo "helloworld"
echo $B
[root@centos7 ~]# ./helloworld.sh
Helloworld

 发现并没有打印输出变量 B 的值。  

[root@centos7 ~]# export B
[root@centos7 ~]# ./helloworld.sh
helloworld
2

  

  

  

  

  

 

 

posted @ 2022-08-07 15:39  KwFruit  阅读(67)  评论(0编辑  收藏  举报