在bash中设置带有前导数字的环境变量

Hai*_*Gad 6 linux bash shell environment-variables

我需要在bash中设置一个名为"64bit"的环境变量(即带有前导数字).但是,bash变量名称不允许带有前导数字的变量.我知道在调用bash时设置它的方法:

env 64bit=1 /usr/bin/bash
Run Code Online (Sandbox Code Playgroud)

但是,我正在寻找一种方法来改变它在当前运行的shell中,即不是通过启动一个新的shell.我也知道csh允许变量以数字开头,但我需要使用bash.

有没有办法实现这个目标?

Ben*_*ela 8

您还可以绕过bash解释器并使用bash内部函数直接定义变量:

$ gdb --batch-silent -ex "attach $$"                              \
    -ex 'set bind_variable("64bit", "1", 0)'                      \
    -ex 'set *(int*)(find_variable("64bit")+sizeof(char*)*5) = 1' \
    -ex 'set array_needs_making = 1'

$ env | grep 64
64bit=1
Run Code Online (Sandbox Code Playgroud)

  • +1是我最疯狂/最聪明的使用gdb我多年来遇到的. (5认同)