我曾经这样做过:
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