env
显示所有环境变量的列表
$ env |wc -l
63
环境变量总数 = 63
根据help export
-p display a list of all exported variables and functions
$export -p |wc -l
63
环境变量+函数行=63 然后函数行=0
set
显示环境变量列表 + shell 变量 + 函数
$set |wc -l
4772
然后只显示变量(环境变量+shell变量)
$(set -o posix ;set)|wc -l
172
这意味着函数行= 4772-172 不为零请向我解释发生了什么?
混淆是因为
export -p
默认情况下只显示导出的变量(declare -x
),而不是函数。要显示导出的函数(
declare -fx
),请使用export
:还要澄清一下,计算行数以获得函数数是完全错误的,因为函数定义跨越多行(即使它在声明时在单行中定义,
set
在多行中显示它们)。