Shell | 变量
系统预定义变量
常用系统变量$HOME
、$PWD
、$SHELL
、$USER
等
例子:
(1)查看系统变量的值
$ echo $HOME
/home/zlq
(2)显示当前 Shell 中所有变量:set
$ set
BASH=/bin/bash
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
...
自定义变量
基本语法:
(1)定义变量:变量名=变量值,注意,=号前后不能有空格
(2)撤销变量:unset 变量名
(3)声明静态变量:readonly
变量,注意:不能 unset
变量定义规则:
(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
(2)等号两侧不能有空格
(3)在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算。
(4)变量的值如果有空格,需要使用双引号或单引号括起来。
例子:
(1)定义变量 A
$ A=5
$ echo $A
5
(2)给变量 A 重新赋值
$ A=8
$ echo $A
8
(3)撤销变量 A
$ unset A
$ echo $A
(4)声明静态的变量 B=2
,不能 unset
$ readonly B=2
$ echo $B
2
$ B=9
-bash: B: readonly variable
(5)在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算
$ C=1+2
$ echo $C
1+2
(6)变量的值如果有空格,需要使用双引号或单引号括起来
$ D=I love banzhang
-bash: world: command not found
$ D="I love banzhang"
$ echo $D
I love banzhang
(7)可把变量提升为全局环境变量,可供其他 Shell 程序使用
export 变量名
$ vim helloworld.sh
在 helloworld.sh 文件中增加 echo $B
#!/bin/bash
echo "helloworld"
echo $B
$ ./helloworld.sh
Helloworld
发现并没有打印输出变量 B 的值。
$ export B
$ ./helloworld.sh
helloworld
2