Der formale Aspekt von Shell-Programmen ist eine Art ,,Initialisierungzeile`` mit folgender Form #!/bin/sh. Mit dieser Zeile wird die gewünscht Shell gestartet unter Linux ist für gewöhnlich ein Link von /bin/sh auf /bin/bash gesetzt (man überprüfe dies gegebenenfalls). Falls das Shell-Programm auf einen anderen Rechner portiert wird, bei dem nicht die bash benutzt wird läuf das Programm trotzdem, da die dort installierte Shell gefunden und benutzt wird.
Shell-Skripte konnen nur ausgeführt werden, wenn die Zugriffsbits auf Lesezugriff (r) und Ausführbarkeit (x) gesetzt sind (chmod 755 [Datei]). Es ist sinnvoll für eigene Shell-Programme ein home/bin/ Verzeichnis anzulegen und dies im PATH einzutragen. Dann können eingene Shell-Programme wie ,,normale,,Unix Kommandos benutzt werden.
Die folgenden Beispiele sollen die Arbeitsweise von Shell-Skripten verdeutlichen:
#!/bin/sh #ls -la | grep komfortabel :-) if [ $1 ] then dir=$(pwd) echo 'Suche in:' $dir echo 'ls -la | grep '$1 echo 'AUSGABE:' ls -la | grep $1 else echo 'Syntax:llg {Suchmuster}' fiDieses Skript trägt den Namen llg und sucht in den Dateinamen der Dateien des akutellen Verzeichnises nach einem Muster und gibt die falls das Muster vorkommt die Datei aus.