Ich möchte diesen Blog als Nachschlagewerk für die Bash nutzen. Es wird hier afu keine Details eingegangen, sondern dient nur zum schnellen Nachschlagen. Des Weiteren werden die Unterschiede zwischen der Bash < 4.x mit dokumentiert.
Eine neurerung der Bash 4.x ist nun das sie mit assioziativen Arrays arbeiten kann. Hier ein Beispiel dafür.
declare -A Name
Name[Tau]=Pan
Name[Kater]=Tom
Name[Pan]=Peter
#Alle ausgeben
echo "Schlüssel: ${!Name[@]}"
echo "Wert: ${Name[@]}"
echo "Der Name von Pan ist ${Name[Pan]}"
Ich möchte hier nun eine Liste darstellen von allen wichtigen vordefinierten Variablen in der Korn,Bash,Zsh Shell.
| CDPATH | Suchpfad für cd Kommando z.B. CDPATAH=‘.:~:/etc/‘ Danach kann ich problemlos alle Ordner in etc mit cd ansprechen. Achtung das geht nur mit CD 😉 nicht mit vi oder anderen Befehlen da müsste man die PATH variable anpassen. |
| HOME | User Homeverzeichnis |
| IFS | Wort Trennzeichen |
| LOGNAME | Login-Name |
| MAIL,MAILCHECK | Mailbox-pfad und wartezeit der shell |
| MANPATH | Pfadname der Manpages |
| PATH | Suchpfad für Kommandos |
| PS1 | Primärer Prompt |
| PS2 | Sekundärer Prompt |
| SHELL | Pfad zur Shell |
| TERM | Terminal-Einstellung |
| TZ | Zeitzone MET |
| EDITOR | Kommandozeileneditor wenn visual nicht gesetzt ist |
| ENV | Entält den pfadnamen zur Environment-Datei, die bei jedem Neu-Start einer Sub-Shell gelesen wird. |
| FPATH | Verzeichnisse, die der Autoload-Mechanismus nach Funktionsdefinition durchsucht. |
| HISTFILE | History-Datei |
| HISTSIZE | Größe der History-Datei |
| PS3 | Prompt für Menüs Standardwert # |
| PS4 | Debugging-Promptstring |
| TMOUT | Wartet solange bis keine Eingabe erfoglt und beendet das Terminal |
| BASH_ENV | Konfigurationsdatei in bash .bashrc |
| HOSTFILE | Pfas zur Hosts file /etc/hosts |
| HOSTNAME | Rechnername |
| HOST | Rechnername ZSH |
| GROUPS | Array aller Gruppen für den aktuellen Benutzer |
| MACHTYPE | CPU Architektur |
Weitere vordefinierte Variablen
| $1 bin $n | Argumente aus der Kommadozeile |
| $RANDOM | Pseudo Zufallszahl zwischen 0 – 32767 |
| $* | Alle Argumente eine Zeichenkette |
| $@ | Alle Argumente aus der KOmmandozeile als einzelne Zeichenkette |
| $# | Anzahl aller Argumente in der Kommandozeile |
| $_ | (bash only) die zuletzt aufgerufen wurden |
| $LINENO | zeigt die Zeilennummer |
| $OLDPWD | zeigt das zuvor besuchte Arbeitsverzeichnis |
| $OPTARG | Der Wert des letzten Arguments |
| $OPTIND | Enthält die NUmmer der zuletzt von getops ausgewertet |
| $PPID | ProzessID des Elternprozesses |
| $PWD | Aktuelles Verzeichniss |
| $SECONDS | Zeigt die Sekunden seit dem Start des Systems |
| $HOSTTYPE | (nur zsh) zeigt den Typ des Rechners |
| PROMPT_COMMND | (nur zsh)Hier kann ein Kommando angeben werden was bei jeder Eingabeaufforderung automatisch ausgeführt wird. |
| UID | User-ID |
For Schleifen werden auch immer einfacher 🙂 Hier ein Beispiel um zu prüfen welche Systeme erreichbar sind also OneLiner :
for i in {100..255}; do; if ping -c1 -w3 192.168.50.$i >/dev/null 2>&1;then; echo "Ping responded; $i address allocated" >&2;fi; done
Neueste Kommentare