在shell编程中,有没有办法找到变量和函数地址? 当我们输出& x时,在c或c ++中,我们可以得到x内存地址。
答案 0 :(得分:1)
这取决于你想要什么。大多数shell仅支持符号(或“软”)引用,包含其他变量名称的变量。 Korn shell 93具有使用typeset -n
创建的名称引用,但该地址未公开。看看man ksh
中的内容,它可能会有所帮助。
但即使你能得到变量的内存地址,你会用它做什么? Shell变量不像C中那样以原始方式构造,因此指针arithemtic将没有用。只能通过递增地址来迭代数组或字符串。您可以做的最好的事情是调查该特定shell的特定版本的内存。
由于shell主要用C语言编写,因此您始终可以使用debug(-g
)编译shell源代码并使用调试器进行连接。不知道那会给你带来什么,所以我的问题必须是:为什么?
编辑;从评论我看到你想要堆栈大小 - 我很确定shell变量将在堆上或在环境块中分配。