mac | OSX und die Shell

In MacOSX ist die Standardshell Bash – leider in der ca. fast schon zwei Jahre alten Version 3.2.48. Das wird jetzt nicht jeden stören, da nicht jeder auf der Kommandozeile arbeitet. Wer aber, wie ich, ab und an ein Shell-Script erstellt, wird vielleicht schon mal mit der „neuesten“ Version 4.1 geliebäugelt haben. Hervorzuheben sind

There is a new `autocd' option that, when enabled, causes bash to attempt
to `cd' to a directory name that is supplied as the first word of a
simple command.
There is a new shell option: `globstar'.  When enabled, the globbing code
treats `**' specially -- it matches all directories (and files within
them, when appropriate) recursively.
There is a new shell option: `dirspell'.  When enabled, the filename
completion code performs spelling correction on directory names during
completion.
Brace expansion now allows zero-padding of expanded numeric values and
will add the proper number of zeroes to make sure all values contain the
same number of digits.
There is a new &>> redirection operator, which appends the standard output
and standard error to the named file.
The parser now understands `|&' as a synonym for `2>&1 |', which redirects
the standard error for a command through a pipe.

Alle neuen Features aufzuzählen würde zu viel Zeit rauben, deswegen sei auf die Liste des Bash-Maintainers verwiesen.

Wie man diese Version in OSX installiert werde ich hier zeigen.

Es gibt verschiedene Wege um Bash 4 in OSX zu installieren: Neben MacPorts, Homebrew möchte ich hier zeigen, wie man sich Bash 4 aus dem Quellcode selbst kompiliert. Das klingt erst mal kompliziert, ist es aber gar nicht. Man muss sich nur Xcode aus den Developer Tools installieren – die hat man auf den Installation-CDs von OSX oder kann sie auch direkt von Apple herunterladen.

Nun lädt man sich das aktuelle Quellcode-Archiv vom FTP-Server herunter

curl http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz -o bash-4.1.tar.gz

und entpackt diesen auf seiner Festplatte. Ich nehme dazu den Pfad ~/usr/local/src.

tar xvzf bash-4.1.tar.gz -C ~/usr/local/src/ && cd ~/usr/local/src/bash-4.1

anschliessend

./configure && make && sudo make install

die neue Bash wird dann nach /usr/local/bin installiert.

Nun muss die neue zusätzliche Shell dem System bekannt gemacht werden. Das geschieht mit dem Befehl

sudo bash -c "echo /usr/local/bin/bash >> /private/etc/shells"

in der Datei /etc/shells

Jetzt kann jeder Benutzer für sich die neue Shell als Standardshell definieren.

In dem darauffolgendem Editor-Fenster ändert man die Zeile Shell von /bin/bash

zu /usr/local/bin/bash

Nach einem Neustart der Terminal-Session hat man nun Bash 4 als Shell.

Einige Beispiele für die neuen Features findet man bei Ian McCracken, wo auch die englischsprachige Anleitung für die Installation von Bash 4 zu finden ist.

Ein Gedanke zu „mac | OSX und die Shell

  1. Pingback: mac | OSX Lion und die aktuellste BASH-Shell | controlc.de

Schreibe einen Kommentar

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