b oder d – Klein[ig|lich]keiten

Nachdem ich auf den Eee PC 900 umgestiegen bin, habe ich auf dem Eee PC 701 ein frische Ubuntu 8.04(.1) aufgesetzt, um ihn damit an einen Kumpel weitergeben zu können.

Für das WLAN wird auf dem Eee PC 701 – wie auch auf dem 900 – der madwifi-Treiber benötigt. Dieser ist am Paketsystem vorbei zu kompilieren und zu installieren (Sourcen herunterlden, entpacken, make clean, make, make install). Nach jeder Änderung am Kernel durch das Paketsystem muss die Installation des madwifi wiederholt werden. Da mein Kumpel ein Windows-User ist, musste es mein Ziel sein, diesen Vorgang so einfach wie möglich zu gestalten. Also musste ein shell-Script her, das die Aufgabe übernimmt und möglichst aus dem Anwendungen-Menü von Gnome aufgerufen werden kann.

Das shell-Script ist kein Problem. Da Im-Fall-der-Fälle der Rechner offline sein dürfte, liegt der tar-Ball mit der Source fest im Dateisystem und wird in ein Arbeitsverzeichnis entpackt, dort kompiliert und installiert. Danach wird Alles weggeräumt. Soweit keine Rocketscience.

Da das Script vom Benutzer nicht von der Kommandozeile, sondern aus dem Anwendungen-Menü gestartet wird, schließt sich das Fenster, wenn das Script durchgelaufen ist. Es fehlt somit eine Rückmeldung, dass es durchgelaufen ist.Daher wollte ich am Ende des Scriptes auf einen Tastendruck des Benutzers warten.

Als Gelegenheits-shell-Programmierer hatte ich keine Idee, wie ich das hinbekomme. Die Nachteulenim IRC-Channel #ubuntu-berlin verhalfen mir zu einer Lösung:

read -n 1

Das funktionierte zwar hervorragend auf der Kommandozeile, aber im Script eingebaut, meckerte die Shell über den unerlaubten Parameter -n. 🙁

Die Lösung war einfach wie auch ärgerlich. Ubuntu nutzt als Shell für die Kommandozeile bash. Für die Scripte verweist /bin/sh jedoch auf die Shell dash. Und die bash und die dash sind nicht voll kompatibel.

Mit der Änderung des shebang auf #!/bin/bash war dann das Problem gelöst.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kommentare abonnieren

Es erfolgt keine Weitergabe von Daten an externe Dienste wie WordPress.com.

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.