![]() |
Universitätsrechenzentrum |
![]() |
|
$ varname=zeichenkette
Beispiel:
$ farbe=blau $ vorname=HansBemerkung:
Variable werden durch ihre Verwendung (Nennung des Namens) definiert, sie besitzen standardmäßig den Wert der leeren Zeichenkette.
$ name="ANTON ADLER" $ name=ANTON\ ADLER $ name='ANTON ADLER'Bemerkung: Markierungsmechanismen der Shell werden noch genauer erläutert
$ einrichtung="Fachbereich Informatik" $ readonly einrichtung
$ export einrichtungBemerkung: export ohne Argument liefert eine Liste der exportierten Variablen
$einrichtung $farbesomit liefert
$ echo $einrichtung Fachbereich Informatikwährend echo für eine Variable, der noch kein Wert zugewiesen wurde, nichts liefert:
$ echo $xyz $Der Wert einer exportierten Variablen kann in einer Sub-Shell nur lokal verändert werden.
$ trainer=ANTON\ ADLER $ echo $trainer ANTON ADLER $ export trainer $ sh $ echo $trainer ANTON ADLER $ trainer=BERND\ BIBER $ echo $trainer BERND BIBER $ exit $ echo $trainer ANTON ADLER $
$ unset trainer
$ jahreszeit=Winter
$ echo ${jahreszeit}ferien
Winterferien
$ file=prog
$ echo ${file}.c
prog.c
| ${name:-wort} | ersetzt name durch seinen Wert, |
|---|---|
| falls dieser ungleich Null ist, ansonsten | |
| wird wort eingesetzt | |
| ${name:=wort} | ersetzt name durch seinen Wert, |
| falls dieser ungleich Null ist, andernfalls | |
| wird wort eingesetzt und name zugewiesen. | |
| ${name:?wort} | ersetzt name durch seinen Wert, |
| falls dieser ungleich Null ist, andernfalls | |
| wird wort auf der Standardfehlerausgabe | |
| ausgegeben und das Script abgebrochen. | |
| ${name:+wort} | Setzt den Wert wort ein, falls name |
| ungleich Null ist, ansonsten wird nichts ersetzt. |
$ dir=/afs/tu-chemnitz.de/home/urz/s/stb $ ls $dir $ ls $dir/*.cFalls z.B. /afs/tu-chemnitz.de/home/urz/s/stb/cmd ein Shell-Script enthält, so ist der Aufruf auch einfach möglich
$ $dir/cmd ...
| # | Anzahl der Argumente, die dem Shell-Script übergeben wurden (bzw. |
| Anzahl der mittels set gesetzten Shell-Variablen i (Werte $1, $2, ...) | |
| * | Bezugnahme auf alle Argumentwerte $1, $2, etc. |
| (z.B. beim Aufruf des Shell-Scripts) | |
| @ | analog wie $*; die Angabe ,,$@`` bezieht sich auf alle Variablen |
| ,,$1``, ,,$2`` etc. | |
| Name des aktuell ausgeführten Shell-Scripts | |
| - | Optionen dieser Shell |
| ? | Exitstatus (Return value) des letzten Kommandos |
| $ | Prozessnummer der Shell |
| ! | Prozessnummer des letzten Kommandos mit & |
| IFS | Liste von Worttrennzeichen in Argument |
| File, das bei Änderung ,,you have mail``- Meldung bewirkt | |
| PS1 | Primäre Prompt-Zeichenkette; Voreinstellung
' |
| PS2 | Sekundäre Prompt-Zeichenkette; Voreinstellung '>' |
| HOME | Standardargument für das cd- Kommando (HOME-Verzeichnis, für jeden Nutzer im Passwordfile /etc/passwd festgelegt) |
|---|---|
| PATH | Suchpfade für Kommandos, d.h. Reihenfolge der Verzeichnisse, in denen nach den Programmen bzw. Shell-Scripts gesucht werden soll. Die einzelnen Verzeichnisse sind durch das Zeichen : voneinander getrennt (p1:p2:p3:...:pn) |
$ echo $PATH
/bin:/usr/bin/: # 1. /bin
# 2. /usr/bin
# 3. aktuelles Verzeichnis
$ PATH=:/bin:/usr/bin:$HOME/bin
# Suchreihenfolge:
# 1. aktuelles Verzeichnis
# 2. /bin
# 3. /usr/bin
# 4. Verzeichnis bin im Homeverzeichnis
$ PATH=/bin::/usr/bin
# Suchreihenfolge:
# 1. /bin
# 2. aktuelles Verzeichnis
# 3. /usr/bin
| PS1 |
Festlegung der Promptzeichenkette der Shell, standardmäßig $
Beispiel: PS1=``Sie wünschen:'' |
| PS2 |
Promptzeichenkette bei Folgeeingaben, standardmäßig >
Beispiel: $echo 'Hallo >wie geht's?' |
| IFS | Separatorzeichen der Shell, standardmäßig Leerzeichen, Tabulator- und Newlinezeichen |
| Name des Nachrichtenfiles des Nutzers; er wird benachrichtet, wenn Nachrichten in dem File eingetroffen sind |
`cmd`
wird ersetzt durch die Standardausgabe von cmd
$ date # Uhrzeit, Datum Don Mär 16 11:18:58 MET 2000 $ echo Aktuelles Datum und Uhrzeit: `date` Aktuelles Datum und Uhrzeit: Don Mär 16 11:19:59 MET 2000 $ $ pwd /afs/tu-chemnitz.de/home/urz/s/stb $ dir=`pwd` $ echo $dir /afs/tu-chemnitz.de/home/urz/s/stb
alle mit $ beginnenden Worte werden ersetzt durch ihren Zeichenkettenwert
`cmd`
wird ersetzt durch Standardausgabe von cmd
Das nach 1. und 2. entstehende Ergebnis wird nach Trennzeichen durchsucht und die
entsprechende Separierung durchgeführt (Ausnahmen: Trennzeichen in markierten
Worten)
Auswertung der Metazeichen *, ?, [-]
$ echo "heute ist `date`; HOME-Verzeichnis: $HOME" heute ist Don Mär 16 11:21:40 MET 2000; HOME-Verzeichnis: /afs/tu-chemnitz.de/home/urz/s/stb $ echo "1 \$ = 1.95 DM" 1 $ = 1.95 DM $
| Ursula Riedel 05. April 2003 |
Technische Universität Chemnitz, Straße der Nationen 62, 09107 Chemnitz Impressum - Copyright © 2005 by TU Chemnitz, URZ, alle Rechte vorbehalten. |
Druckansicht |