Linux – verwendete Shell herausfinden

Gestern habe ich hier im Blog über das Sicherungsskript für mySQL geschrieben. Beim ersten ausprobieren hat es super funktioniert, wenn ich es manuell gestartet habe. Wurde es dagegen über cron aufgerufen, stand das hier unzählige male im Log:

mysqlbackup.sh: 4: /root/Skripte/mysqlbackup.sh: [[: not found

Was war passiert? Google spukte recht schnell aus, das es sich hierbei um ein Problem mit Bash handelt. Nicht ganz richtig, aber es brachte mich auf die richtige Spur. Welche Shell verwende ich eigentlich unter Linux?

Herausfinden kann man das mit

echo $0

Will man nun einmalig eine andere Shell nutzen, so kann man z.B. mit /bin/sh  die sh starten und mit exit wieder beenden. In der Datei /etc/shells findet man alle auf dem System aktuell installierten Shells.

Schnell fand ich raus, das Bash meine Login-Shell war, in der mein Skript einwandfrei funktionierte, aber cron auf sh zurückgriff, was scheinbar nicht funktionierte. Die Lösung hierfür ist aber auch ganz einfach. Einfach die erste Zeile des Skriptes hiermit beginnen lassen:

#!/bin/bash

Und schon ist es egal, was die Standard-Shell für cron ist – es wird in diesem Skript einfach Bash verwendet.

Schreiben Sie einen Kommentar

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