BASH执行二进制文件并读取/修改变量

BASH执行二进制文件并读取/修改变量

我曾经这样做过:

declare -g var='value'
. ~script.sh sub

我的var可以在我的子程序中读取和修改。

现在我有一个二进制文件,script.sh并且我想要相同的功能。当然,现在我不能这样做,. ~/script.bin sub因为 bash'cannot execute binary file'

相反,我必须:

declare -g var='value'
~/script.bin sub

我如何 ~/script.bin sub阅读/修改我的var

我也尝试过: declare -gx var='value'export var='value'没有饼干。

答案1

我尝试使用共享内存,这可能是一个很好且简单的选择。

在我的~/script.bin sub我现在有:

sub() {
shmvar="/dev/shm/var"
echo "sub var: " && cat "${shmvar}"  # show the imported var
echo "new value" > "$shmvar"         # modify the var
return 0
}

在主脚本中我有:

var='old value'
shmvar="/dev/shm/colBlack"    # shm var address
echo "$var" > "$shmvar"       # populate shmvar with var
~/scirpt.bin sub              # call my binary sub
echo "new var: " && cat "${shmvar}"  # check the modified var

输出:

sub var:
old value
new var:
new value

相关内容