次のようなスクリプトがある場合:
#!/bin/bash
echo `script2.sh` > temp.txt &
(wait for long enough time)
a=`cat temp.txt`
echo $a
a の値は script2.sh によって正常に変更されます。ただし、これを行うと:
#!/bin/bash
a=`script2.sh` &
(wait for long enough time)
echo $a
a の値は script2.sh によって変更されません。私がこれをしたい理由は次のとおりです:(1)script2.shによってメインプロセスがブロックされたくない(待機中、私は何か他のことをすることができる) (2)私のメインプログラムは多くのことをしますそのため、多くのファイル IO を実行すると大きなオーバーヘッドが発生するため、値をメモリ内の変数に直接割り当てることをお勧めします。bash スクリプトのファイル IO が非常に遅いことがわかりました。私のプログラムでは、このような IO を 400 回実行すると、約 10 秒かかります (ただし、コンピューターがビジー状態の場合)。なにか提案を?