Wie ich lernte, die Liste zu lieben
Arrays kommen in der Bourne Again Shell leider zu fummelig daher.
Es ist einfacher (und eleganter), eine Komma-Separierte-Liste mit ähnlichen Funktionalitäten auszustatten. Damit man das nicht jedesmal neu coden muss: lima
lima ist eine bash-Library, die man inludieren kann
lima inkludieren
$#> . /var/install/include/lima
Wenn man permissive beim includieren sagt, kann man mehr als ein Element gleichen Namens haben.
lima permissiv inkludieren
$#> . /var/install/include/lima permissive
lima kann dann in der Shell / im Script wie folgt aufgerufen werden:
lima Aufruf
$#> lima <cmd> <part> <list>
Zu diesen Kommandos gibt lima immer die aktuelle Liste zurück, also fang sie auf, Du PokéMongo!
lima Beispiel
$#> list=$(lima add f a,b,c,d,e)
Einige Kommandos sind Tests und geben true oder false zurück: in, first, last
lima Tests
$#> lima in needle "$list" && echo "Hurra!"
lima usage
add <elem> <list>: add <elem> to the <list>'s end
addFront <elem> <list>: add <elem> to the <list>'s front
del <elem> <list>: delete <elem> from the <list>
n <list>: count length (number of elems) of <list>
pos <elem> <list>: find position of <elem> in <list>
pop <n> <list>: pop <n> elems from right of <list> - return list on <list>
rewind <list>: turn <list> around
shift <n> <list> [|list]: pop <n> elems from left of <list> - return list on 3rd list
sort <list>: sort <list> alphabetically
some <cmds> are tests:
in <elem> <list>: exits 0 if true/1 if false, says nothing
first <elem> <list>: exits 0 if true/1 if false, says nothing
last <elem> <list>: exits 0 if true/1 if false, says nothing