Top-Fragen
Zeitleiste
Chat
Kontext
Fish (Shell)
Unix-Shell Aus Wikipedia, der freien Enzyklopädie
Remove ads
Auf unixoiden Betriebssystemen ist die Fish-Shell (für friendly interactive shell) eine sogenannte exotische Shell: Deren Syntax stammt weder von der Bourne-Shell (bash, ksh, zsh) noch von der C-Shell (csh, tcsh) ab. Die Fish-Shell erleichtert durch eine Autovervollständigung die Arbeit; sie schlägt abhängig von früheren Eingaben und den aktuell gemounteten Laufwerken Befehle, Optionen und Verzeichnispfade vor, diese können mit Tabulator- und Pfeiltasten ausgewählt werden. Ebenso erleichtert Fish die Arbeit, indem es Hilfe-Texte anbietet und verständliche Fehlermeldungen zurückgibt. Viele nützliche Befehle und Optionen können so, in der Konsole selbst, durch den Benutzer entdeckt werden.
Remove ads
Syntax und Beispiele
Zusammenfassung
Kontext
Die Syntax ähnelt einer POSIX-kompatiblen Shell wie bash, weicht aber in wichtigen Eigenschaften ab. Die Gestalter von fish glaubten, in gewisser Hinsicht sei die POSIX-Shell schlecht designt worden. Zum Beispiel kann man mit der POSIX-Syntax den Gültigkeitsbereich von Variablen nicht verändern sowie keine Arrays und keine Funktionen definieren.
# Dieser Befehl weist der Variablen "foo" den Wert "bar" zu.
# fish verzichtet auf '=' als Zuweisungsoperator, da dieser wegen
# seiner Leerraum-Sensitivität häufig falsch benutzt wird; zwei
# Objekte müssen also nicht durch einen Operator getrennt werden.
> set foo bar
> echo $foo
# Der Output des Befehls 'pwd' wird in der Variable 'wd'
# gespeichert. fish verwendet, ungleich bash, nicht ``, da
# es mit '' verwechselt werden kann und ohnehin keine
# Verschachtelung zulässt.
> set wd (pwd)
> set wd $(pwd) # ab Version 3.4
> echo $wd
# Arrays. 'A' ist ein Array mit fünf Werten:
> set A 3 5 7 9 12
# Ein Segment eines Arrays extrahieren:
> set B $A[1 2]
> echo $B
3 5
# Index eines Arrays – und sogar ein Befehl ('seq 3')
# kann als Index verwendet werden:
> echo $A[(seq 3)]
3 5 7
# B enthält 3 und 5. Mit
> set --erase A[$B]
# wird das dritte und fünfte Element von A entfernt:
> echo $A
3 5 9
# for-Schleife, um jpg-Dateien zu png-Dateien
# umzuwandeln:
> for i in *.jpg
convert $i (basename $i .jpg).png
end
# Eine Funktion definieren:
> function hello
echo "Hello $argv!"
end
# Die Funktion für den späteren Gebrauch abspeichern:
> funcsave hello
# Die Liste der zur Zeit in fish definierten Funktionen ansehen:
> functions -n
# Den Typ eines Objektes abrufen (bei in fish definierten Funktionen wird der Programmcode angezeigt):
> type file
# Aus den installierten Manpages Vorschläge für Optionen generieren:
> fish_update_completions
Remove ads
Weblinks
Einzelnachweise
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads