Shell是弱类型的语言,没有向C、java那样的强类型变量。都是弱类型变量。都会统一存储位字符串类型。
和传统语言的变量有类似的是:
-
变量名由数字、字母、下划线组成;
-
必须以字母或者下划线开头;
-
不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。
但是需要注意的是:
赋值的=两边不允许有空格
Shell 变量的命名规范和大部分编程语言都一样:
shell中变量接受定义的三种方式:
-
name=nick
-
name='nick'
-
mame="nick"
关于{},可以选择添加,让编译器更好去识别边沿
skill="shell"
echo "I am good at ${skill}Coding"
全局变量&局部变量
[root@localhost shell_protest]# sh ./var.sh
1000
12
[root@localhost shell_protest]# cat ./var.sh
#!/bin/bash
a=13
function func(){
a=12
local a=19
local a=100
a=1000
echo $a
}
func
echo $a
可以得出结论:
-
只有定义的时候加local才算是局部变量
-
在局部定义了local,之后在局部用这个变量始终是局部的变量。
-
对于同名的局部变量和全局变量的影响力:局部变量>全局变量。