与其他编程语言一样,shell 脚本中也提供了变量,而且还有自己的一些特殊定义和使用方法。
文章目录
1.定义 shell 变量
1.本地变量
[root@localhost ~]# a=1
[root@localhost ~]# echo $a
1
[root@localhost ~]#
需要注意等号两边不能有空格
[root@localhost ~]# b = 5
bash: b: 未找到命令...
[root@localhost ~]#
2.只读变量
变量只能读不能写
[root@localhost ~]# readonly myvar=1
[root@localhost ~]# myvar=2
bash: myvar: 只读变量
[root@localhost ~]#
3.声明变量
在Linux中给变量赋值时,将该变量默认为是字符或字符串,如果两个变量用“+”操作,则会被解释成字符串的连接操作。
[root@localhost ~]# a=123
[root@localhost ~]# b=456
[root@localhost ~]# c=$a+$b
[root@localhost ~]# echo $c
123+456
[root@localhost ~]#
使用变量前声明这个变量
参数项 | 说明 |
---|---|
-a | 将变量声明为数组 |
-i | 将变量声明为整型 |
-r | 将变量声明为只读 |
[root@localhost ~]# a=123
[root@localhost ~]# b=456
[root@localhost ~]# declare -i c
[root@localhost ~]# c=$a+$b
[root@localhost ~]# echo $c
579
[root@localhost ~]#
2.访问 shell 变量
[root@localhost ~]# a=5
[root@localhost ~]# echo $a_
[root@localhost ~]# echo ${a}_
5_
[root@localhost ~]#
1.用 echo 命令显示 shell 变量
参数 | 说明 |
---|---|
无 | 不加参数,打印完内容转换到下一行 |
-n | 打印完内容后不转换到下一行 |
-e | 打印内容,并把内容中的转义字符转义显示 |
2.显示所有的本地 shell 变量
[root@localhost ~]# set
...
...
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/root
HOSTNAME=localhost.localdomain
HOSTTYPE=x86_64
ID=0
IFS=$' \t\n'
IMSETTINGS_INTEGRATE_DESKTOP=yes
IMSETTINGS_MODULE=IBus
LANG=zh_CN.UTF-8
...
...
3.从键盘读入
[root@localhost ~]# read a
521
[root@localhost ~]# echo $a
521
[root@localhost ~]#
read 后面不仅可以跟一个变量,也可以跟多个变量或不跟变量
[root@localhost ~]# read a b
521 1314
[root@localhost ~]# echo $a
521
[root@localhost ~]# echo $b
1314
[root@localhost ~]# read a b
123 456 789
[root@localhost ~]# echo $a
123
[root@localhost ~]# echo $b
456 789
[root@localhost ~]#
[root@localhost ~]# read
Hello World
[root@localhost ~]# echo $REPLY
Hello World
[root@localhost ~]#
参数 | 说明 |
---|---|
-a | -a后面跟数组变量名,随后输入的内容都存放到各数组元素中 |
-p | 在为变量赋值之前,先显示-p后的提示字符串 |
[root@localhost ~]# read -a array
10 9 8 7
[root@localhost ~]# echo ${array[0]}
10
[root@localhost ~]# echo ${array[2]}
8
[root@localhost ~]#
[root@localhost ~]# read -p"请输入您的电话号码:" yournumber
请输入您的电话号码:10086
[root@localhost ~]# echo $yournumber
10086
[root@localhost ~]#
4.把变量当成整型
第一种方法
用双圆括号将变量名或运算表达式括起来
[root@localhost ~]# a=1
[root@localhost ~]# echo $a
1
[root@localhost ~]# a=$(($a+1))
[root@localhost ~]# echo $a
2
[root@localhost ~]#
第二种方法
用一对方括号将运算表达式括起来
[root@localhost ~]# c=1
[root@localhost ~]# echo $c
1
[root@localhost ~]# c=$[c+5]
[root@localhost ~]# echo $c
6
[root@localhost ~]#
3.清除 shell 变量
[root@localhost ~]# a=1
[root@localhost ~]# echo $a
1
[root@localhost ~]# unset a
[root@localhost ~]# echo $a
[root@localhost ~]#