Stammtisch 2024-07-26: Unterschied zwischen den Versionen

Aus lugvswiki
Zur Navigation springenZur Suche springen
Zeile 28: Zeile 28:
  
 
=== Kleine Shelleinführung – 4. Teil: Argumente und Exit-Codes ===  
 
=== Kleine Shelleinführung – 4. Teil: Argumente und Exit-Codes ===  
<!-- Stichwort 1, Stichwort 2, Stichwort 3 (zum Thema 1) -->
+
<!-- Exit-Code, Rückgabewert, Argumente, $0, $1, $* -->
Plocki hält nur einen kurzen Abriss, da Ulf hier in nachfolgenden Treffen tiefer einsteigen wird
+
Plocki hält ''nur'' einen kurzen Abriss, da Ulf hier in nachfolgenden Treffen tiefer einsteigen wird.
  
 
Jedes Programm, das ausgeführt und später beendet wird, gibt einen sogenannten ''Exit-Code'' zurück (Deutsch: Rückgabewert).  
 
Jedes Programm, das ausgeführt und später beendet wird, gibt einen sogenannten ''Exit-Code'' zurück (Deutsch: Rückgabewert).  
 
Natürlich würde man diesen Rückgabewert (Exit-Code) im Nachhinein händisch nicht jedes mal abfragen. Doch wenn wir ein Skript erstellen (was später folgen soll), wollen wir diese Abfrage des Exit-Codes einbauen, um sicherzustellen, dass das Skript auch erfolgreich abgeschlossen wurde.
 
Natürlich würde man diesen Rückgabewert (Exit-Code) im Nachhinein händisch nicht jedes mal abfragen. Doch wenn wir ein Skript erstellen (was später folgen soll), wollen wir diese Abfrage des Exit-Codes einbauen, um sicherzustellen, dass das Skript auch erfolgreich abgeschlossen wurde.
  
Zum Beispiel wenn ich als '''letzten''' Befehl ''find'' (gefolgt vom Dateinamen) eingegeben hatte, kann ich kontrollieren, ob die Ausgabe des Suchergebnisses auch "vertrauenswürdig" ist.
+
Mal angenommen, ich habe den Befehl ''ls'' (gefolgt von einer Option &ndash; hier ''-l'') eingegeben, um eine Liste von enthaltenen Verzeichnissen und Dateien eines bestimmten Pfades zu erhalten &ndash; dazu bin ich erst einmal in das entsprechende Verzeichnis gewechselt:
  <$> ''find'' '''$?'''
+
 
 +
<$>  holger@holger:~> '''cd''' ~/LINUX-SCHULE (Wechsel vom Home-Verzeichnis ('''~''') ins Unterverzeichnis "LINUX-SCHULE")
 +
<$>  holger@holger:~/LINUX-SCHULE> '''ls -l'''
 +
insgesamt 4
 +
-rw-r--r-- 1 holger users 61 23. Jul 00:05 Dokument_emacs.txt
 +
holger@holger:~/LINUX-SCHULE>
 +
 
 +
Im Ordner LINUX-SCHULE befindet sich lediglich das Textdokument "Dokument_emacs.txt".
 +
 
 +
Mit dem Befehl ''echo'', nach einem Leerzeichen gefolgt von einem Dollar- und Fragezeichen ('''$?''')
 +
<$> echo '''$?'''
 +
0
 +
holger@aelbler:~/LINUX-SCHULE>
 +
erhalten wir den Fehlercode '''0'''. Im Gegensatz zur DOS-Welt (Windows) steht die Zahl '''0''' (Null) immer dafür, dafür, dass "alles in Ordnung ist"; siehe Manpage von ''ls'' unter "Rückgabewert":
 +
<$> '''man ls'''
 +
...
 +
Rückgabewert:
 +
        '''0      wenn alles in Ordnung ist,'''
 +
 +
        1      bei kleineren Problemen (z. B. kein Zugriff  auf  Unterver‐
 +
              zeichnis),
 +
 +
        2      bei ernsthaften Schwierigkeiten (z. B. kein Zugriff auf Be‐
 +
              fehlszeilenargument).
 +
 
 +
Wenn wir jetzt aber mit dem Befehl ''ls'' eine Datei (oder auch ein Verzeichnis) aufrufen wollen, welches '''gar nicht existent ist''' (z. B. die Datei "Dokumentemacs.txt" &ndash; ohne Unterstrich zwischen "Dokument" und "emacs"), kann die Datei nicht gefunden werden:
 +
 
 +
  <$> holger@holger:~/LINUX-SCHULE> '''ls Dokumentemacs.txt'''
 +
ls: Zugriff auf 'Dokumentemacs.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
 +
holger@holger:~/LINUX-SCHULE>
 +
ls: Zugriff auf 'Dokumentemacs.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
 +
holger@aelbler:~/LINUX-SCHULE>
 +
 
 +
Und fragen wir nun erneut mit <code>'''echo $?'''</code> den Exit-Code (Rückgabewert) ab, haben wir folgende Ausgabe:
 +
<$> holger@holger:~/LINUX-SCHULE> '''echo $?'''
 +
2
 +
Also, den Fehlercode '''2''' ...
 +
 
 +
Plocki ging auch noch auf Argumente ein, siehe [https://plocki.org/blog/linux/shelleinfuehrung4-draft.html ''kleine Shelleinführung Teil 4''].
 +
Dabei ist das erste Argument (in unserem Beispiel '''$0''' immer der Befehl, und danach (beliebig viele) Argumente die folgenden Ausgaben ($1 = Argument 1, $2 = Argument 2, $3 = Argument 3, und so weiter ...).
 +
Argumente müssen durch ein Leerzeichen getrennt sein.
  
 
----
 
----

Version vom 26. Juli 2024, 21:20 Uhr

26.07.2024 - 20:00 Uhr, Online-Stammtisch auf https://bbb.ch-open.ch/rooms/ulf-nm2-y26/join

wöchentlicher onlineStammtisch

Auf dem Stammtisch Mai 2020 beschlossener wöchentlicher Stammtisch jeden Freitag ab 20:00 Uhr anstelle des monatlichen Stammtisches im realen Leben.


Anwesende

  • Holger
  • Plocki
  • Bertram
  • Klaus
  • Manfred
  • Rainer

Themen


Vor-Ort-Stammtischtreffen – Abstimmung online

Klaus fragt, wer der (heute wenigen) Anwesenden interessiert wäre, einmal wieder einen realen Stammtisch zu besuchen. Es muss auch noch geklärt, ob der Real-Stammtisch an einem Freitag (statt des Online-Treffens), oder gar an einem anderen Wochenende


Kleine Shelleinführung – 4. Teil: Argumente und Exit-Codes

Plocki hält nur einen kurzen Abriss, da Ulf hier in nachfolgenden Treffen tiefer einsteigen wird.

Jedes Programm, das ausgeführt und später beendet wird, gibt einen sogenannten Exit-Code zurück (Deutsch: Rückgabewert). Natürlich würde man diesen Rückgabewert (Exit-Code) im Nachhinein händisch nicht jedes mal abfragen. Doch wenn wir ein Skript erstellen (was später folgen soll), wollen wir diese Abfrage des Exit-Codes einbauen, um sicherzustellen, dass das Skript auch erfolgreich abgeschlossen wurde.

Mal angenommen, ich habe den Befehl ls (gefolgt von einer Option – hier -l) eingegeben, um eine Liste von enthaltenen Verzeichnissen und Dateien eines bestimmten Pfades zu erhalten – dazu bin ich erst einmal in das entsprechende Verzeichnis gewechselt:

<$>  holger@holger:~> cd ~/LINUX-SCHULE (Wechsel vom Home-Verzeichnis (~) ins Unterverzeichnis "LINUX-SCHULE")
<$>  holger@holger:~/LINUX-SCHULE> ls -l 
insgesamt 4
-rw-r--r-- 1 holger users 61 23. Jul 00:05 Dokument_emacs.txt
holger@holger:~/LINUX-SCHULE>

Im Ordner LINUX-SCHULE befindet sich lediglich das Textdokument "Dokument_emacs.txt".

Mit dem Befehl echo, nach einem Leerzeichen gefolgt von einem Dollar- und Fragezeichen ($?)

<$> echo $?
0
holger@aelbler:~/LINUX-SCHULE> 

erhalten wir den Fehlercode 0. Im Gegensatz zur DOS-Welt (Windows) steht die Zahl 0 (Null) immer dafür, dafür, dass "alles in Ordnung ist"; siehe Manpage von ls unter "Rückgabewert":

<$> man ls
...
Rückgabewert:
       0      wenn alles in Ordnung ist,

       1      bei kleineren Problemen (z. B. kein Zugriff  auf  Unterver‐
              zeichnis),

       2      bei ernsthaften Schwierigkeiten (z. B. kein Zugriff auf Be‐
              fehlszeilenargument).

Wenn wir jetzt aber mit dem Befehl ls eine Datei (oder auch ein Verzeichnis) aufrufen wollen, welches gar nicht existent ist (z. B. die Datei "Dokumentemacs.txt" – ohne Unterstrich zwischen "Dokument" und "emacs"), kann die Datei nicht gefunden werden:

<$> holger@holger:~/LINUX-SCHULE> ls Dokumentemacs.txt
ls: Zugriff auf 'Dokumentemacs.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
holger@holger:~/LINUX-SCHULE>

ls: Zugriff auf 'Dokumentemacs.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden holger@aelbler:~/LINUX-SCHULE>

Und fragen wir nun erneut mit echo $? den Exit-Code (Rückgabewert) ab, haben wir folgende Ausgabe:

<$> holger@holger:~/LINUX-SCHULE> echo $?
2

Also, den Fehlercode 2 ...

Plocki ging auch noch auf Argumente ein, siehe kleine Shelleinführung Teil 4. Dabei ist das erste Argument (in unserem Beispiel $0 immer der Befehl, und danach (beliebig viele) Argumente die folgenden Ausgaben ($1 = Argument 1, $2 = Argument 2, $3 = Argument 3, und so weiter ...). Argumente müssen durch ein Leerzeichen getrennt sein.


Mikrofon bei Ubuntu

Bildschirmteilung klappt nicht


  1. INTERNE LINKS WERDEN (in zweifach eckiger Klammer [[...]], Linkadresse und Linkbeschreibung durch eine Pipe (|) getrennt) SO EINGEFÜGT: Stammtisch 2024-04-19, Stichwörter erstellen --> siehe LINK EINFÜGEN



BINDESTRICH TEXT VOR DEM BINDESTRICH – TEXT NACH DEM BINDESTRICH




Zurück zur Übersicht