定义变量时,变量名不加美元符号($),如:
variableName="value"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
•首个字符必须为字母(a-z,A-Z)。•中间不能有空格,可以使用下划线(_)。
•不能使用标点符号。
•不能使用bash里的关键字(可用help命令查看保留关键字)。
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
for skill in Ada Coffe Action Java
do
echo "I am good at ${skill}Script"
done
如果不给skill变量加花括号,写成echo "I am good at $skillScript",解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。
推荐给所有变量加上花括号,这是个好的编程习惯。
重新定义变量
已定义的变量,可以被重新定义,如:
your_name="tom"
echo $your_name
your_name="alibaba"
echo $your_name
这样写是合法的,但注意,第二次赋值的时候不能写$your_name="alibaba",使用变量的时候才加美元符($)。
二、引用环境变量和变量
1.下面是在一个文件中引用变量方法
#!/bin/sh
log="4"
if [ $log = "4" ];
then
echo "$log is succed"
else
echo "$log is failure"
fi
2.从其他脚本程序引用变量
[root@ tmp]# cat 1.sh
log=`basename $0`.log
echo $log in $0
[root@ tmp]# cat 2.sh
source 1.sh
echo $log in $0
[root@ tmp]# ./1.sh
1.sh.log in ./1.sh
[root@ tmp]# ./2.sh
2.sh.log in ./2.sh
2.sh.log in ./2.sh
3.直接引用环境变量,这样方便我们修改和设置
我把环境变量放在开发板的/etc/profile文件里面
export log=4
在其他脚本中直接引用,前面加上环境变量路径 source /etc/profile
可以直接在命令行输入export log=4进行修改