VARIABLE=() { 函数定义} 如何在 bash 中工作

mce*_*ede 7 bash function

警告 - 这个问题是关于漏洞之前的 Bash ,因此它被改变了。


我在我的 bash ENV 中看到过这样的事情:

module=() {  eval `/usr/bin/modulecmd bash $*` }
Run Code Online (Sandbox Code Playgroud)

这个构造是如何工作的?这叫什么?

我不是在问 modulecmd,我是在问整个结构。

cuo*_*glm 9

它实际上是一个名为module. 导出函数时,它会出现在环境变量中。

$ test() { echo test; }
$ export -f test
$ env | sed -n '/test/{N;p}'
test=() {  echo test
}
Run Code Online (Sandbox Code Playgroud)

bash 文档 - 导出

出口

 export [-fn] [-p] [name[=value]]
Run Code Online (Sandbox Code Playgroud)

标记要传递给环境中的子进程的每个名称。如果提供了 -f 选项,则名称指的是 shell 函数;否则名称是指 shell 变量。-n 选项意味着不再为导出标记每个名称。如果未提供名称,或者提供了 -p 选项,则会显示导出的名称列表。-p 选项以可重复用作输入的形式显示输出。如果变量名后跟=value,则变量的值设置为value。

返回状态为零,除非提供了无效选项,名称之一不是有效的 shell 变量名称,或者 -f 提供的名称不是 shell 函数。