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.

Antworten:


14

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


@ 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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.