Bash/Interaktiv: Unterschied zwischen den Versionen

Aus Foxwiki
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
*Eine Interaktive Shell liest und schreibt auf das Terminal des Benutzers
*Eine Interaktive Shell liest und schreibt auf das Terminal des Benutzers
** Ein- und Ausgabe sind mit dem Terminal verbunden.  
** Ein- und Ausgabe sind mit dem Terminal verbunden.
 
==== Ist meine Shell interaktiv? ====


= Ist meine Shell interaktiv? =
Bei Interaktiven Shells enthält der <span >''special parameter''</span> „–“ ein „i“, wenn die Shell interaktiv ist
Bei Interaktiven Shells enthält der <span >''special parameter''</span> „–“ ein „i“, wenn die Shell interaktiv ist
  '''echo $-'''
  '''echo $-'''
  himBH
  himBH
Zeile 12: Zeile 9:
In nicht-interaktiven Shells ist zudem die Prompt-Variable PS1 nicht gesetzt!
In nicht-interaktiven Shells ist zudem die Prompt-Variable PS1 nicht gesetzt!


=== Verhalten interaktiver Shells ===
= Verhalten interaktiver Shells =
Der interaktive Modus der Bash wird gestartet, wenn das 'bash'-Kommando ohne ''non-option argument'' gestartet wird, also ohne auszuführendes Kommando oder Skript.* Bash liest Start-Dateien ein
Der interaktive Modus der Bash wird gestartet, wenn das 'bash'-Kommando ohne ''non-option argument'' gestartet wird, also ohne auszuführendes Kommando oder Skript.* Bash liest Start-Dateien ein
* Job Kontrolle ist eingeschaltet
* Job Kontrolle ist eingeschaltet

Version vom 21. Februar 2022, 18:09 Uhr

  • Eine Interaktive Shell liest und schreibt auf das Terminal des Benutzers
    • Ein- und Ausgabe sind mit dem Terminal verbunden.

Ist meine Shell interaktiv?

Bei Interaktiven Shells enthält der special parameter „–“ ein „i“, wenn die Shell interaktiv ist

echo $-
himBH

In nicht-interaktiven Shells ist zudem die Prompt-Variable PS1 nicht gesetzt!

Verhalten interaktiver Shells

Der interaktive Modus der Bash wird gestartet, wenn das 'bash'-Kommando ohne non-option argument gestartet wird, also ohne auszuführendes Kommando oder Skript.* Bash liest Start-Dateien ein

  • Job Kontrolle ist eingeschaltet
  • Prompts sind gesetzt. PS2 ist aktiviert für mehrzeilige Kommandos (">"), wird auch angezeigt, wenn Kommandos nicht korrekt abgeschlossen wurden.
  • Kommandos werden mit readline von der Kommandozeile gelesen.
  • Bash beachtet die Shell-Option ignoreeof statt unmittelbar zu terminieren, wenn sie ein EOF (End Of File) empfängt.
  • Kommando-History und History-Expansion sind aktiviert
  • Alias-Expansion ist aktiviert
  • Ohne traps werden SIGTERM-Signale ignoriert
  • Ohne traps wird SIGINT beachtet und behandelt, Ctrl+C, beendet z.B. nicht die interaktive Shell
  • SIGHUP Signal an alle Jobs, beim Verlassen der Shell, kann mit der huponexit-Option konfiguriert werden
  • Kommandos werden nach dem Lesen ausgeführt.
  • Bash prüft periodisch nach neuen Mails
  • Bash terminiert nicht, wenn sie auf eine unreferenzierte Variable triff
  • redirection error interner Befehle terminiert die Shell nicht
  • Fehler interner Befehle im POSIX-Mode terminieren die Shell nicht
  • fehlerhafter Aufrufe mit exec terminieren die Shell nicht
  • Parser syntax errors terminiert die Shell nicht
  • einfacher spell check für die Argumente der internen Kommandos ist aktiviert
  • Automatisches exit nach der in der Variable TMOUT festgelegten Zeitspanne ist aktiviert

Kommandosyntax

siehe Linux:Shell:Bash:Kommandosyntax

Ausführung von Kommandos

siehe Linux:Shell:Bash:Kommandos

Kommandozeile editieren

siehe Linux:Shell:Bash:Kommandozeile

History

siehe Linux:Shell:Bash:history

Jobkontrolle

siehe Linux:Shell:Bash:Builtin:jobs

Verzeichnisstapel

dirs, pushd, popd verwalten den Stapel der internen Verzeichnisse.

  • Mit pushd Verzeichnis wird das angegebene Verzeichnis auf dem Stapel abgelegt.
  • Mit popd gelangen Sie anschließend zum zuletzt abgelegten Verzeichnis zurück.
  • Den aktuellen Stapelinhalt zeigt der Befehl dirs an.

Pfad-Cache

siehe Linux:Shell:Bash:Builtin:hash