Bash変数はどのくらいのデータを保持できますか?

Bash変数はどのくらいのデータを保持できますか?

同じログセクションを複数回解析したいとしましょう。 data = $(grep "initial filter" file.log)を実行し、$ dataで次のフィルタを実行したいと思います。 $dataはメモリが使い果たされるまで増え続けますか?

答え1

オペレーティングシステムで設定した以外に他の制限はないようです。

$ yes=$(yes)

bash: xrealloc: cannot allocate 18446744071562067968 bytes (1617920 bytes allocated)

答え2

ああ、アプローチが間違っていますmktemp。たとえば、次のようになります。

x="$(mktemp)"
grep mohsen /etc/passwd > $x


root@debian:/home/mohsen# echo $x
/tmp/tmp.yuMRWrJbRI

その後、スクリプトの最後から一時ファイルを削除できます。

この方法では、変数の代わりにファイルを使用します。

関連情報