Kapitel 7 von 15nullos.de

Die Shell

s – spricht Bash, damit deine Skripte einfach weiterlaufen. Und Tab kennt jeden Befehl.

s                  interaktiv
s skript.sh ARG …  Skript ausführen
s -c 'befehl'      einen Befehl
s -e -x -u -o pipefail   wie bei bash

Bash-Skripte laufen

Fast alles, was man aus Bash kennt, ist da: Variablen, Pipes, if/for/while/case, Funktionen, [[ … ]] mit Mustern und =~, Felder und assoziative Felder, $(( )), Here-Dokumente, <(befehl), alle ${x…}-Ersetzungen, set -euo pipefail, select, Namensreferenzen (declare -n), extglob und **/.

Die Probe aufs Exempel: Homebrews brew und git filter-branch laufen unter s mit derselben Ausgabe wie unter bash. Getestet wird jeder Fall gegen bash 5.

Tippen macht Spaß

Startdatei: ~/.src. Meldungen kommen auf Deutsch, in einer Zeile.

Was (noch) fehlt

Jobsteuerung (fg, bg, Strg+Z), coproc, read -t, ulimit, times, caller, wait -n. complete wird angenommen, wirkt aber nicht – s nimmt ja die specs.

Wo sie läuft

Auf nullos selbst! Gibt es /bin/s, startet der Kernel beim Hochfahren gleich die Shell. Rohre, Schleifen, $( ) und Funktionen laufen dort. exit führt zurück zur kleinen Kernel-Shell. Auf dem Mac: alle Tests grün.

Für kleine Geräte ohne fork gibt es eine Fassung, die Programme über einen einzigen Systemaufruf startet.