Shell脚本定义变量和环境变量的引用

时间:2023-02-11 15:36:52
一、定义变量
定义变量时,变量名不加美元符号($),如:

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进行修改