shell变量作用域

Shell变量的作用域可以分为三种:

  • 局部变量:只能在函数内部使用,需要使用local修饰!
  • 全局变量:可在当前的shell进程中使用,需要注意当前shell脚本和当前shell进程是不一样的
  • 环境变量:可以在子进程中使用

局部变量

#!/bin/bash

function func(){
	a=99;	#不加local,这个变量仍然是全局的
}

func

echo ${a}

全局变量

每个shell进程都有单独的PID号,一个shell进程可以运行多个脚本,那么前一个脚本定义的全局变量,可以在后面的脚本中被使用!

#!/bin/bash
a="holo"
echo ${b}	[[输出空]]
. test2.sh
#!/bin/bash
b="test2"
echo ${a}	[[输出holo]]

环境变量

父进程:export一些变量,只有子进程能够获取到!