BASH はバイナリを実行し、変数を読み取りまたは変更します。

BASH はバイナリを実行し、変数を読み取りまたは変更します。

私はかつてこれをしました:

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

私のサブルーチンから私の内容をvar読んで修正することができます。

これでバイナリがあり、script.sh同じ機能が欲しいです。もちろん今は. ~/script.bin subbashなのでこれはできません'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

おすすめ記事