Bash Stellungsparameter

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Stellungsparameter (Spezielle Variablen)

Den Stellungsparametern $1, $2, ..., $9 werden bei ihrer Definition nach ihrer Reihenfolge Werte zugewiesen. Die Definition erfolgt mit dem Kommando set', einem Skript - oder Prozeduraufruf .

Ihr Geltungsbereich ist lokal, d.h. sie gelten nur in der aktuellen bash und können nicht exportiert werden.

Belegen der Variablen mittels set

  • set der fck ist eine klasse Mannschaft
  • echo $1 $2 $3
der fck ist
  • echo $5 $6 $7
eine klasse Mannschaft
  • set unser fcs ist aber auch ok
  • echo $1 $2 $3
unser fcs ist

Belegen der Variablen durch einen Skriptaufruf

Die Variablen werden automatisch beim Skriptaufruf belegt, indem sie als Argumente dem Skript übergeben werden.

  • cat skript1
#!/bin/bash
echo "1         parameter $1"
echo "2         parameter $2"
echo "3         parameter $3"
echo "4         parameter $4"
echo "alle     parameter $*"
echo "alle     parameter $@"
echo "anzahl    parameter $#"
echo "skriptname      $0"
echo "PID des skriptes      $$"
echo "Rückgabewert letztes Kommando     $?"
  • ./skript1 blau gruen gelb rot
1            parameter blau
2            parameter gruen
3            parameter gelb
4            parameter rot
alle         parameter blau gruen gelb rot
alle         parameter blau gruen gelb rot
anzahl       parameter 4
skriptname             ./skript1
PID des skriptes       1019
Rückgabewert letztes Kommando    0

Systemparameter

Der Begriff Systemparameter bezeichnet eine Variable, die von der bash automatisch mit Werten versorgt wird. Die aktuellen Werte können vom Benutzer abgefragt werden.

Einige wichtige Systemparameter:


$$ PID des laufenden Prozesses
$! PID des letzten Hintergrundprozesses
$- Liste der für die bash gesetzten Schalter
$? Exitstatus des letzten Kommandos
$# Anzahl der Stellungsparameter
$* Liste der Stellungsparameter
$0 Aktueller Prozessname

shift-Kommando

Das Kommando bewirkt die Verschiebung aller Stellungsoperanden um eine Stelle nach links. Auf diese Weise ist nach der Anwendung des shift-Kommandos der Wert des 10ten Parameters in $9, der ursprüngliche Wert von $1 ist verloren. Die Stellenanzahl, um die verschoben wird, kann angegeben werden, z. B. bewirkt der Befehl shift 4 das Verschieben um 4 Stellen nach links.

  • set hallo ihr guten admins von der schule hier
  • echo $1 $2 $3 $4
hallo ihr guten admins
  • shift
  • echo $1 $2 $3 $4
ihr guten admins von
  • shift 3
  • echo $1 $2 $3 $4
von der schule hier