0
在shell编程中,有没有什么方法可以找到变量和函数地址? 当我们输出& x时,就像在c或C++中一样,我们可以得到x内存地址。在shell中查找变量和函数内存地址
在shell编程中,有没有什么方法可以找到变量和函数地址? 当我们输出& x时,就像在c或C++中一样,我们可以得到x内存地址。在shell中查找变量和函数内存地址
这取决于你想要什么。大多数shell只支持符号(或“软”)引用,这些变量包含其他变量的名称。 Korn shell 93具有使用typeset -n
创建的名称引用,但地址未公开。看看man ksh
,这可能会有所帮助。
但即使你可以得到变量的内存地址,你会怎么做呢? Shell变量不像C中那样以原始的方式构造,所以指针arithemtic将不起作用。您只能通过递增地址来遍历数组或字符串。你可以做的最好的事情是调查那个特定shell的特定版本的内存。
由于shell大部分都是用C语言编写的,因此您可以随时使用调试(-g
)编译shell源代码并使用调试器进行连接。不知道那会买什么,但我的问题是:为什么?
编辑;从一个评论我看到你想要的堆栈大小 - 我敢肯定,shell变量将分配在堆或环境块。
你想用这个地址做什么? – sth
实际上,我想在运行时估计堆栈大小,有什么办法吗? – user1694236
Shell脚本通常不具有“地址”或“内存”的概念。所以不,你不能得到变量的地址。“ –