0

在shell编程中,有没有办法找到变量和函数地址?当我们输出 &x 时,就像在 c 或 c++ 中一样,我们可以获得 x 内存地址。

4

1 回答 1

1

这取决于你想要什么。大多数 shell 只支持符号(或“软”)引用,即包含其他变量名称的变量。Korn shell 93 具有名称引用,使用 创建typeset -n,但地址未公开。看看那个man ksh,它可能会有所帮助。

但即使你能得到变量的内存地址,你会用它做什么呢?Shell 变量不像 C 语言那样以原始方式构造,因此指针算术是没有用的。您不能仅通过增加地址来遍历数组或字符串。您能做的最好的事情就是调查该特定 shell 的特定版本的内存。

由于 shell 大部分是用 C 编写的,因此您始终可以使用 debug ( -g) 编译 shell 源代码并使用调试器进行连接。不知道那会给你带来什么,所以我的问题必须是:为什么?

编辑; 从评论中我看到你想要堆栈大小 - 我很确定 shell 变量将在堆或环境块中分配。

于 2012-09-24T12:17:34.253 回答