私はかつてこれをしました:
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