KSH/BASHアレイの最大サイズ

KSH/BASHアレイの最大サイズ

kshとbashスクリプトの最大配列サイズは何ですか?

例:10個の要素からなる配列があるとします。配列の特定のインデックスが保持できる最大文字列数は何ですか?同じ配列の最大サイズはいくらですか?

私はUnixに初めて触れました。よくある質問のようですが、答えがなくてここに質問するようになりました。

ベストアンサー1

i=0
while true; do
    a[$i]=foo
    i=$((i+1))
    printf "\r%d " $i
done

この簡単なスクリプトは私のシステム(Gnu / LinuxとSolaris)に表示されます。

  • ksh88サイズを(4095)に制限します2^12-1。 (subscript out of range)。一部の以前のバージョン(たとえば、HP-UXバージョン)はサイズを1023

  • ksh93配列サイズを2^22-1(4194303)に制限します.状況が異なる場合があります。

  • bash使用可能なデフォルトのメモリリソースによって指定されたもの以外は、ハードコーディングされた制限は適用されません。たとえば、bashは1.3 GB仮想メモリを使用してサイズの配列を保存します18074340

mksh注:遅すぎるループ(zsh、および.よりksh93100倍遅い)の実行を放棄しました。bash

おすすめ記事