In diesem Beispiel beziehe ich mich auf die Erweiterung einer Folge von ganzen Zahlen, aber vielleicht (?) Wären die Grenzen für alle Aspekte der Klammererweiterung relevant. Diese allgemeinere Ansicht ist auch für mich von Interesse.
seq scheint viel längere ganzzahlige Sequenzen zu verarbeiten als die {1..n} Klammererweiterung (zumindest ist dies in diesem Beispiel der Fall).
zB 'seq -f @% 12.0f 1 1000000000> / dev / null'. Dies erweitert 1 Milliarde ziemlich glücklich in 14m 04s
Allerdings echo {1..10000000000} >/dev/nullstürzt in Vergessenheit von der CLI in 'gnome-terminal' und 'konsole' (... Auf Wiedersehen Terminal - Session!)
Das Beste, was ich aus der Klammererweiterung für eine ganzzahlige Sequenz herausholen kann, ist ungefähr {1..15000000} .. nur 15 Millionen.
Ist dies eine Einschränkung der Klammererweiterung selbst oder des Umgangs echomit den erweiterten Daten? Es scheint durch die Verwendung des gesamten verfügbaren Arbeitsspeichers verursacht zu werden, aber ich dachte, es würde den swapBereich an diesem Punkt nutzen ...
Außerdem (übrigens) echo {..}dauert diese 15000000-Ganzzahlsequenz 57,0 s; während seqdauert nur 12,7s ...
bash: xmalloc: ../../../bash/lib/sh/stringvec.c:40: cannot allocate 11280523272 bytes (0 bytes allocated). (Bash 3.2.39, amd64.) 15000000 verursachte zu viel Tausch, also habe ich es getötet. Sie verlangen einfach zu viel von der armen Bash.