LPIC102/105.2 Einfache Skripte anpassen oder schreiben: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 41: Zeile 41:
Mithilfe des Kommandos ''source'':
Mithilfe des Kommandos ''source'':
  source /home/user/addi 5 9
  source /home/user/addi 5 9
Aus der Textdatei ein ausführbares Shell-Skript machen. Dafür sind zwei Schritte notwendig:
Als erstes muss die Datei als "ausführbar" markiert werden.
# chmod 700 addi
Dann muss die ''Shebangzeile'' in der Datei eingefügt werden.
#/bin/bash
Das Skript kann nun ausgeführt werden:
addi 4 4
Die Summe aus 4 und 4 ist 8.
==Speicherort eines Skripts==
{|class="wikitable"
! Verzeichnis !! Bedeutung
|-
| ''/bin'' || Hier kommen die Programme hin, die aus der Distribution kommen und von apt installiert worden sind. Programme, die von Benutzer genutzt werden können.
|-
| ''/sbin'' || Hier kommen die Programme hin, die aus der Distribution kommen und von apt installiert worden sind. Programme, die nur root benutzen kann.
|-
| ''/usr/bin'' || Ähnlich wie ''/bin''
|-
| ''/usr/sbin'' || Ähnlich wie ''/sbin''
|-
| ''/opt'' || Hier kommen die Programme hin, die von apt heruntergeladen und installiert worden sind, aber nicht von der Distribution kommen.
|-
| ''/usr/local/bin'' || Hier kommen selbst kompilierte Programme hinein.
|-
| ''/usr/local/sbin'' || Hier kommen selbst kompilierte Programme hinein, die nur root ausführen darf.
|}


[[Category:Linux]]
[[Category:Linux]]

Version vom 22. Juli 2019, 13:10 Uhr

Mithilfe von Skripten können alltägliche Aufgaben völlig automatisch ablaufen lassen. In Skripten müssen neben Shell-Kommandos auch Befehle fürs Programmieren angewendet werden, vornehmlich Schleifen und Fallunterscheidungen.

Kommandos verketten

Es gibt drei Zeichen, um Kommandos nacheinander auszuführen.

Zeichen Bedeutung Beispiel
; Kommandos werden nacheinander durchgeführt echo "Dies ist eine Liste";ls -l
&& Kommando 2 wird dann ausgeführt, wenn das erste Kommando erfolgreich war. ls && echo "Vorgang erfolgreich"
|| Kommando 2 wird dann ausgeführt, wenn das erste Kommando erfolglos war. ls /etz || echo "Fehlernummer $?"

Lange Kommandos, die sich über mehrere Zeilen verteilen, sollten mit einem Backslash \ aufgeteilt werden.

dd of=/dev/zero \
if=/.tmp \
bs=1M count=2000 stauts=progress

Ausführung eines Skripts

Ausführungsberechtigung

  • Ein Shell-Skript kann nur dann ausgeführt werden, wenn die Datei auf "ausführbar" gesetzt wird.
  • Mit ls -l kann man die Berechtigungen sehen
  • Mit chmod kann man das Attribut für die Ausführbarkeit gesetzt werden.
# chmod a+x <Skriptdatei> // Alle können das Skript ausführen
# chmod 700 <Skriptdatei> // Nur der Benutzer kann das Skript ausführen
# chmod 4700 <Skriptdatei> // Normale Benutzer können es verwenden, wie der Besitzer des Skripts

Skript ausführen

Ein Beispielskript addi:

#Addiert zwei Variablen
let summe=$1+$2
echo "Die Summe aus $1 und $2 ist $summe."

An die Bash, mitsamt den Parametern, übergeben:

bash /home/user/addi 2 3

Mithilfe des Kommandos source:

source /home/user/addi 5 9

Aus der Textdatei ein ausführbares Shell-Skript machen. Dafür sind zwei Schritte notwendig: Als erstes muss die Datei als "ausführbar" markiert werden.

# chmod 700 addi

Dann muss die Shebangzeile in der Datei eingefügt werden.

#/bin/bash

Das Skript kann nun ausgeführt werden:

addi 4 4
Die Summe aus 4 und 4 ist 8.

Speicherort eines Skripts

Verzeichnis Bedeutung
/bin Hier kommen die Programme hin, die aus der Distribution kommen und von apt installiert worden sind. Programme, die von Benutzer genutzt werden können.
/sbin Hier kommen die Programme hin, die aus der Distribution kommen und von apt installiert worden sind. Programme, die nur root benutzen kann.
/usr/bin Ähnlich wie /bin
/usr/sbin Ähnlich wie /sbin
/opt Hier kommen die Programme hin, die von apt heruntergeladen und installiert worden sind, aber nicht von der Distribution kommen.
/usr/local/bin Hier kommen selbst kompilierte Programme hinein.
/usr/local/sbin Hier kommen selbst kompilierte Programme hinein, die nur root ausführen darf.