变量
脚本变量
作用域
- 全局:(继承到子进程,在当前进程和子进程都可以使用)
设置为全局变量:export 变量名 - 局部:(只能在当前进程中使用)
函数变量
作用域
- 全局:函数内定义的变量可以在另外函数内部使用,也可以在函数外使用
不同函数之间可以互相调用变量,脚本内的任意位置可以调用 - 局部:local 变量名 ,确保变量仅在函数内部使用
【demo】:
#测试函数变量的作用域
fun1()
{
a_1=1 #可以在脚本内的任意位置使用
echo "fun1函数内a_1:${a_1}"
}
fun2()
{
local b_2=2 #只能在本函数内部使用
echo "fun2函数内b_2:${b_2}"
}
test_fun()
{
echo "测试函数内a_1:${a_1}"
echo "测试函数内b_2:${b_2}"
}
fun1
fun2
test_fun
echo "函数外a_1:$a_1"
echo "函数外b_2:$b_2"
[root@localhost test]# bash
fun1函数内a_1:1
fun2函数内b_2:2
测试函数内a_1:1
测试函数内b_2:
函数外a_1:1
函数外b_2:
函数库文件
1、在库文件中只定义,不调用,可以定义变量函数;
2、在其他需要用到这些变量或者函数的脚本中调用;
3、使用相对路径来使用库文件(容易移植);
4、如果多个脚本需要调用重复的函数,没必要在每个脚本中定义,只需要创建函数库文件,将需要的函数都放到这个库文件;
5、每个脚本只需要一条语句调用库文件即可(. 库文件脚本名);
注意:不能把库文件当做普通脚本一样在脚本中运行,那样那些函数将不会出现在脚本中
















