在shell中查找变量和函数内存地址

时间:2012-09-24 11:19:35

标签: shell memory memory-address function-address

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

1 个答案:

答案 0 :(得分:1)

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

但即使你能得到变量的内存地址,你会用它做什么? Shell变量不像C中那样以原始方式构造,因此指针arithemtic将没有用。只能通过递增地址来迭代数组或字符串。您可以做的最好的事情是调查该特定shell的特定版本的内存。

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

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