Come disinserire i parametri posizionali?


11

Come faccio a fare questo:

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

In questo modo set "", $#sarà comunque 1 e non 0.

Risposte:


14

Ok, questo è stato solo stupido, e ho scoperto set --che funzionerà.


@Gilles: Secondo la pagina man di bash, set -senza argomenti i parametri posizionali rimangono invariati.
Camh

@camh Devo non essere d'accordo. Vedo questo nel manuale: set - Se nessun argomento segue questa opzione, i parametri posizionali non sono impostati. Altrimenti, i parametri posizionali sono impostati sugli arg, anche se alcuni di essi iniziano con un -.
kdubs,

@kdubs per cui stai citando la pagina man set --. Ho usato set -(trattino singolo), che dice: "Se non ci sono argomenti, i parametri posizionali rimangono invariati".
Camh

hai ragione. Li ho confusi. il mio schermo ha fatto sembrare ...
kdubs

4

Disattiva facilmente tutti i parametri posizionali con:

shift $#

Per rimuovere i primi 3 parametri posizionali:

shift 3

Sposta "pop" dai primi N parametri posizionali. Usando $ # otteniamo il numero totale di parametri posizionali. Il comando quindi elimina tutti i parametri posizionali.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.