Wie Starte Ich Einen Shellscript

Kategorie: Programmierung

Die kurze Erklärung

  • Script in Editor kopieren und ggf. anpassen
  • in ~/bin/SCRIPTNAME speichern
  • Ausführrecht setzen
  • im Terminal durch eintippen von SCRIPTNAME starten

fertig, furios feuriges Freuen.
 
 
 

Die alternative Erklärung:

  • Script in Editor kopieren und ggf. anpassen
  • in ~/SCRIPTNAME.sh speichern
  • Ausführrecht setzen
  • im Terminal durch eintippen von ~/SCRIPTNAME.sh starten

fertig, furios feuriges Freuen,
bis man sich sein Home mit dem Zeug zugemüllt hat, dann bitterliches Bereuen.
 
 
 

Die lange Erklärung

Script in Editor kopieren und ggf. anpassen

Mit "kopieren" ist das altbekannte Copy&Paste gemeint.
Ein "Editor" ist ein Werkzeug zum Erstellen von einfachen Texten. Ein paar zarte: kwrite, kate, gedit, nano, joe, ... Ein paar harte: vi, vim, emacs, ...
 

In ~/bin/SCRIPTNAME speichern

Die Tilde "~" ist ein praktisches Kürzel für den eigenen Homeordner und wird automatisch ersetzt.
Der Ordner "bin" muss ggf. zuerst angelegt werden. Er muss "bin" heißen und sich direkt in dem Homeordner befinden.
Erst danach ein Terminal starten (oder neustarten), um dem System die Möglichkeit zu geben, den Ordner richtig einzubinden.
Ob das geklappt hat, kann man im Terminal so kontrollieren:

echo $PATH
Da soll dann unter Anderem zu sehen sein: "/home/MEINNAME/bin". MEINNAME ist dein Username.
Ist es nicht zu sehen, lädt man die Datei ~/bashrc in den Editor und kopiert folgendes als letzte Zeile ein:
PATH="${HOME}/bin:$PATH"
SCRIPTNAME sollte ein sinniger Name sein. Wer Ärger mag, benutzt Leerzeichen, Tabs, Newlines, hebräische Hieroglyphen und sonstiges UTF-8-Zeug. Das funktioniert zwar, aber man wird es noch bereuen.
Die Sache mit dem Ordner "bin" und PATH muss man nur ein einziges mal machen.
Ab dem nächsten Terminalstart ist die Sache bis zum Systemtod erledigt.
 

Ausführrecht setzen

Im Dateimanager/anzeiger mit der rechten Maustaste auf das Script klicken, bis man so etwas wie "Eigenschaften" findet.
Darin so etwas wie "Berechtigungen" suchen und dort so etwas wie "Ausführbar" anhaken/wählen.
Oder man macht kurzen Prozess im Terminal:

chmod u=rwx ~/bin/SCRIPTNAME
 

Im Terminal durch eintippen von SCRIPTNAME starten

Man kann diese Scripte nun von überall aus starten wie einen normalen Befehl.
 
fertig, furios feuriges Freuen.
 
 
 
 

Wichtige Anmerkung

Ein Script sollte nicht ins Terminal kopiert werden. Das kann funktionieren, muss aber nicht.
Außerdem können wichtige Env-Variablen verstellt worden sein, was kuriose bis fiese Auswirkungen haben kann.
Tut es nicht!
 
 
 
 

Ein Tipp

Unter Linux gilt: Name ist Name. Wenn man ein Script beispielsweise "Meinscript.sh" benennt, muss man es auch genau so aufrufen, also mitsamt der Suffix ".sh" und auch dem Großbuchstaben "M".
 
 
 
 

Shell-Programmierung