bash-Befehlssubstitution…

Die Alias-Definition innerhalb der ~/.bashrc auf Unix-Systemen stellt für den Kommandozeilenhacker ein erstklassiges Mittel zur Verfügung um das Shell-Leben komfortabler zu gestallten. Somit lässt sich beispielsweise durch “alias dir=’ls -lh’” DOS-Verhalten herstellen.

…oder: Wie mache ich mir das Shell-Leben einfacher?

Heute musste ich mal wieder auf einem “fremden” Unix arbeiten. Gewohnt von “Zuhause” tippte ich fürs Directory-Listing dir anstatt ls - lh ein. Folglich bekam ich die niederschmetternde Antwort: “-bash: dir: not found” zu lesen! Aber: Ich bin nun mal ein “DOS-Kind” und benötige mein dir!

Zum Glück fiel mir die Alias-Definition der bash ein (schließlich erreichte ich damit auf der Kommandozeile von mu21-srv annähernde DOS-Kompatibilität):

alias dir='ls -lh'

in die Datei ~/.bashrc (falls vorhanden - ansonsten anlegen) einfügen… Und schon ist der DOS-Befehl dir auch auf der bash verfügbar! Allerdings nur für den jeweiligen Benutzer. Möchte man für alle Benutzer der Maschine dieses Verhalten erzeugen, so wird dieser Eintrag in /etc/bash.bashrc fällig!

Generell:

alias gewuenschter_befehl='bash_befehl -mit_optionen'


Dies gilt leider nicht für alle Shell-Varianten. Auf Embedded-Linux-Systemen wie z.B. AVM Fritz Box Fon oder Linksys WRT54G wird meist die BusyBox Distribution eingesetzt (geringe Größe). Die Funktion alias ist der dort verwendeten Almquist-Shell (ash) jedoch unbekannt (reduzierter Befehlssatz). Demnach lässt sich an dieser Stelle keine Befehlssubstitution durchführen… Nein, es lässt sich auch kein ash-Skript in /bin erstellen: SquashFS! Abhilfe schaffen hier sog. Build-in Funktionen. Diese übersteigen jedoch den Aufwand ls –lh anstatt dir einzugeben. Das DOS-Kind reift somit zum Unix-Erwachsenen heran ;-)

–– 
P.S.: Ich habe die Ausführungen zu den Google Maps API Templates überarbeitet! Das Working paper steht dementsprechend in der Version 1.1 [Update 2007-09-10:] 1.2 [Update 2007-09-13:] 1.3 zur Verfügung: Google Maps API (eine Schnittstellenbeschreibung) (6726)

No Comments! Be The First!

Leave a Reply