2012-09-24 162 views
0

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

+0

你想用这个地址做什么? – sth

+0

实际上,我想在运行时估计堆栈大小,有什么办法吗? – user1694236

+0

Shell脚本通常不具有“地址”或“内存”的概念。所以不,你不能得到变量的地址。“ –

回答

1

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

但即使你可以得到变量的内存地址,你会怎么做呢? Shell变量不像C中那样以原始的方式构造,所以指针arithemtic将不起作用。您只能通过递增地址来遍历数组或字符串。你可以做的最好的事情是调查那个特定shell的特定版本的内存。

由于shell大部分都是用C语言编写的,因此您可以随时使用调试(-g)编译shell源代码并使用调试器进行连接。不知道那会买什么,但我的问题是:为什么?

编辑;从一个评论我看到你想要的堆栈大小 - 我敢肯定,shell变量将分配在堆或环境块。