<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Positionsparameter</id>
	<title>Positionsparameter - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Positionsparameter"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Positionsparameter&amp;action=history"/>
	<updated>2026-05-14T20:22:36Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Positionsparameter&amp;diff=65138&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „= Positionsparameter =  == Grundprinzip == *Positionsparameter sind spezielle Shell-Variablen, über die Argumente an ein Skript oder eine Funktion übergeben…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Positionsparameter&amp;diff=65138&amp;oldid=prev"/>
		<updated>2025-10-17T15:06:40Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Positionsparameter =  == Grundprinzip == *Positionsparameter sind spezielle Shell-Variablen, über die Argumente an ein Skript oder eine Funktion übergeben…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Positionsparameter =&lt;br /&gt;
&lt;br /&gt;
== Grundprinzip ==&lt;br /&gt;
*Positionsparameter sind spezielle Shell-Variablen, über die Argumente an ein Skript oder eine Funktion übergeben werden.  &lt;br /&gt;
*Jeder übergebene Wert wird automatisch in eine durchnummerierte Variable geschrieben.  &lt;br /&gt;
*Diese Variablen sind nur innerhalb der aktuellen Shell-Instanz gültig und werden nicht exportiert.  &lt;br /&gt;
&lt;br /&gt;
== Wichtige Positionsparameter ==&lt;br /&gt;
{| border=1 cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
! Variable !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| $0 || Name des aktuell ausgeführten Skripts oder Befehls&lt;br /&gt;
|-&lt;br /&gt;
| $1 – $9 || Erste bis neunte übergebene Argumente&lt;br /&gt;
|-&lt;br /&gt;
| $# || Anzahl der übergebenen Argumente&lt;br /&gt;
|-&lt;br /&gt;
| $* || Liste aller Argumente (als eine Zeichenkette)&lt;br /&gt;
|-&lt;br /&gt;
| $@ || Liste aller Argumente (getrennt, einzeln interpretierbar)&lt;br /&gt;
|-&lt;br /&gt;
| $$ || Prozess-ID (PID) der aktuellen Shell&lt;br /&gt;
|-&lt;br /&gt;
| $? || Exit-Status des zuletzt ausgeführten Kommandos&lt;br /&gt;
|-&lt;br /&gt;
| $! || Prozess-ID des letzten Hintergrundprozesses&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo &amp;quot;Skriptname: $0&amp;quot;&lt;br /&gt;
echo &amp;quot;1. Parameter: $1&amp;quot;&lt;br /&gt;
echo &amp;quot;2. Parameter: $2&amp;quot;&lt;br /&gt;
echo &amp;quot;Anzahl Parameter: $#&amp;quot;&lt;br /&gt;
echo &amp;quot;Alle Parameter (als String): $*&amp;quot;&lt;br /&gt;
echo &amp;quot;Alle Parameter (getrennt): $@&amp;quot;&lt;br /&gt;
echo &amp;quot;Prozess-ID: $$&amp;quot;&lt;br /&gt;
echo &amp;quot;Exit-Status des letzten Kommandos: $?&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Aufruf&lt;br /&gt;
* ./test.sh rot gruen blau  &lt;br /&gt;
&lt;br /&gt;
;Ausgabe&lt;br /&gt;
 Skriptname: ./test.sh  &lt;br /&gt;
 1. Parameter: rot  &lt;br /&gt;
 2. Parameter: gruen  &lt;br /&gt;
 Anzahl Parameter: 3  &lt;br /&gt;
 Alle Parameter (als String): rot gruen blau  &lt;br /&gt;
 Alle Parameter (getrennt): rot gruen blau  &lt;br /&gt;
 Prozess-ID: 4712  &lt;br /&gt;
 Exit-Status des letzten Kommandos: 0  &lt;br /&gt;
&lt;br /&gt;
== Aufgaben ==&lt;br /&gt;
*Erstellen Sie ein Skript, das alle übergebenen Parameter mit deren Positionsnummer ausgibt.  &lt;br /&gt;
*Ermitteln Sie die Anzahl der Parameter mit '''$#''' und geben Sie diese am Ende aus.  &lt;br /&gt;
*Fügen Sie in die Ausgabe zusätzlich die PID und den Exit-Status ein.  &lt;br /&gt;
*Was passiert, wenn keine Parameter übergeben werden?  &lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
= Parameterübergabe an Skripte =&lt;br /&gt;
&lt;br /&gt;
== Grundprinzip ==&lt;br /&gt;
*Bei der Ausführung eines Skripts können Werte als Parameter übergeben werden.  &lt;br /&gt;
*Diese Parameter werden der Reihe nach in die Positionsvariablen '''$1''', '''$2''', ... geschrieben.  &lt;br /&gt;
*Parameter können z. B. Dateinamen, Pfade oder Textwerte sein.  &lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo &amp;quot;Backup-Quelle: $1&amp;quot;&lt;br /&gt;
echo &amp;quot;Backup-Ziel: $2&amp;quot;&lt;br /&gt;
tar czf &amp;quot;$2/backup.tgz&amp;quot; &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Aufruf&lt;br /&gt;
* ./backup.sh /etc /tmp  &lt;br /&gt;
&lt;br /&gt;
;Ausgabe&lt;br /&gt;
 Backup-Quelle: /etc  &lt;br /&gt;
 Backup-Ziel: /tmp  &lt;br /&gt;
&lt;br /&gt;
== shift-Kommando ==&lt;br /&gt;
*Das Kommando '''shift''' verschiebt alle Positionsparameter um eine Stelle nach links.  &lt;br /&gt;
*Nach dem Verschieben ist der bisherige zweite Parameter der neue erste usw.  &lt;br /&gt;
&lt;br /&gt;
;Beispiel&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo &amp;quot;Vor shift: $1 $2 $3&amp;quot;&lt;br /&gt;
shift&lt;br /&gt;
echo &amp;quot;Nach shift: $1 $2 $3&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Aufruf&lt;br /&gt;
* ./shift.sh eins zwei drei  &lt;br /&gt;
&lt;br /&gt;
;Ausgabe&lt;br /&gt;
 Vor shift: eins zwei drei  &lt;br /&gt;
 Nach shift: zwei drei  &lt;br /&gt;
&lt;br /&gt;
== Aufgaben ==&lt;br /&gt;
*Erstellen Sie ein Skript, das zwei Parameter (Quelle und Ziel) entgegennimmt und deren Pfade ausgibt.  &lt;br /&gt;
*Fügen Sie ein '''shift'''-Kommando ein und zeigen Sie die Parameter danach erneut an.  &lt;br /&gt;
*Testen Sie den Unterschied zwischen '''$*''' und '''$@''' bei Übergabe mehrerer Argumente mit Leerzeichen.  &lt;br /&gt;
*Wie kann überprüft werden, ob überhaupt Parameter übergeben wurden?&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>