变量的作用范围,仅在各自的shell环境中才有效。这点很重要。
例如:
例1 cd.sh内容如下:
#! /bin/bash
cd /usr/local
pwd
该script执行完毕后,路径仍不会改变,因为该script是在子shell中执行,执行完成后,子shell也随即结束 ,又回到原父shell的环境中,因此,工作路径不会改变。
如何达到cd.sh 此程序的构想呢?只要让该script在当前shell中执行即可:
即执行:
. cd.sh 或 source cd.sh
当子shell产生时,它会继承父shell的环境变量等条件,因此,只要使变量成为环境变量,就能为子shell取用。变成环境变量可使用export命令:
VAR="test"
export VAR
或者把上面变量设定和export写成一行:
export VAR="test"
另外,利用:
“declare -x 变量名 ” 这个指令,也同样可以把某一个变量变成环境变量。
因此,以下两条语句等价:
执行export 或export -p 会列出目前所有的环境变量。
取消环境变量值: unset 变量名