Shell Scripting
Auf dieser Seite findest einige hilfreiche Erklärungen im Zusammenhang mit Shell Scripting:


Fehler: /bin/bash^M: Defekter Interpreter

Die "fatale" Vorgeschichte:

  • Wenn man so wie ich die Compile- und Run-Skripte für ein Java-Programm auf Windows geschrieben hat, ...
  • ... dann die Dateien compile.bat und run.bat kopiert und auf compile.sh und run.sh umändert, ...
  • ... dann noch schnell ein #! /bin/bash in die erste Zeile schreibt, dann kommt folgender Fehler beim Ausführen von ./compile.sh bzw. ./run.sh im Terminal:

bash: ./run.sh: /bin/bash^M: Defekter Interpreter: Datei oder Verzeichnis nicht gefunden

Die Lösung:

Mit dem Befehl fromdos <file> kann man solche Probleme, die durch falsche Codierungen entstehen beheben. (Mit dem Befehl todos kann man Linux-Dateien in Windows-Codierung umändern.)

Die Lösung habe ich hier gefunden.


Zugriffsrechte ändern mit chmod (Change mode)

Mit dem Befehl chmod (Change mode) kann man die Zugriffsrechte für eine Datei ändern. Es gibt dabei zwei Modi die verwendet werden können:
  • Octal Modus:
    r hat Wert 4, w hat Wert 2, x hat Wert 1, jede Kombination hat eine eindeutige Summe zwischen 0 und 7.
  • Symbolischer Modus:
    +x fügt Ausführrecht hinzu, -x nimmt Ausführrecht weg, +w fügt Schreibrecht hinzu, -w nimmt Schreibrecht weg, +r fügt Leserecht dazu, -r nimmt Leserecht weg.
Beispiele:
  • chmod 666 <filename> - Setzt Lese- und Schreibrecht für die Datei für alle 3 Berechtigungsgruppen. chmod +x <filename> - Setzt Ausführungsrecht für die Datei für alle 3 Berechtigungsgruppen.