作用域
局部变量:变量只能在函数内部使用
全局变量:变量可以在当前 Shell 进程中使用
环境变量:变量还可以在子进程中使用
局部变量
函数中定义的变量默认是全局变量,在定义时加上local命令,此时该变量就成了局部变量
#!/bin/bash
b=0
a=0
function func(){
a=99
local b=100
}
func
echo $a,$b
全局变量
脚本执行
- 作为程序执行,需要修改权限(给脚本添加执行权限)
通过这种方式运行脚本,脚本文件第一行的#!/bin/bash一定要写对
执行方式:
脚本名:如 ./02.sh
2.当前进程中运行 Shell 脚本
source 命令: 它会读取脚本文件中的代码,并依次强制执行所有语句
执行方式
source filename
. filename
#!/bin/bash
echo $a
b=0
a=0
function func(){
a=99
local b=100
}
func
echo $a,$b
环境变量
全局变量只在当前 Shell 进程中有效,对其它 Shell 进程和子进程都无效。如果使用export命令将全局变量导出,那么它就在所有的子进程中也有效了,这称为“环境变量”。
环境变量被创建时所处的 Shell 进程称为父进程,如果在父进程中再创建一个新的进程来执行 Shell 命令,那么这个新的进程被称作 Shell 子进程。
创建 Shell 子进程最简单的方式是运行 bash 命令,通过exit命令可以一层一层地退出 Shell
a="hello"
echo $a
bash
echo $a
exit
echo $a