Wie hebe ich die Positionsparameter auf?

11

Wie mache ich das:

set foo bar baz
unset # Something else here
echo $# # Should ouput 0

Dadurch set "", $#wird noch 1 und nicht 0.

Tyilo
quelle

Antworten:

14

Ok, das war einfach nur dumm und ich habe herausgefunden, dass set --es funktionieren wird.

Tyilo
quelle
@ Gilles: Laut der Bash-Manpage bleiben set -die Positionsparameter ohne Argumente unverändert.
Camh
@ Camh Ich muss nicht zustimmen. Ich sehe dies im Handbuch: set - Wenn dieser Option keine Argumente folgen, werden die Positionsparameter nicht gesetzt. Andernfalls werden die Positionsparameter auf die Argumente gesetzt, auch wenn einige von ihnen mit einem - beginnen.
kdubs
@kdubs, für die Sie die Manpage zitieren set --. Ich habe einen set -einzelnen Bindestrich verwendet, der besagt: "Wenn keine Argumente vorhanden sind, bleiben die Positionsparameter unverändert."
Camh
Du hast recht. Ich habe sie verwirrt. Mein Bildschirm ließ Ihre - aussehen wie -
kdubs
4

Deaktivieren Sie einfach alle Positionsparameter mit:

shift $#

So entfernen Sie die ersten 3 Positionsparameter:

shift 3

Die Umschalttaste "knallt" die ersten N Positionsparameter ab. Mit $ # erhalten wir die Gesamtzahl der Positionsparameter. Der Befehl löscht somit alle Positionsparameter.

Noah
quelle