Comment désactiver les paramètres de position?


11

Comment puis-je faire cela:

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

Ce faisant set "", $#sera toujours 1 et non 0.

Réponses:


14

Ok, c'était juste stupide, et j'ai découvert que ça set --marcherait.


@Gilles: Selon la page de manuel de bash, set -sans argument, les paramètres de position restent inchangés.
camh

@camh je dois être en désaccord. Je vois cela dans le manuel: set - Si aucun argument ne suit cette option, alors les paramètres de position ne sont pas définis. Sinon, les paramètres positionnels sont définis sur les arguments, même si certains d'entre eux commencent par un -.
kdubs

@kdubs pour lequel vous citez la page de manuel set --. J'ai utilisé set -(tiret simple), qui dit: "S'il n'y a pas d'arguments, les paramètres de position restent inchangés."
camh

tu as raison. Je les ai confondus. mon écran vous a fait - ressembler -
kdubs

4

Désinstallez facilement tous les paramètres de position avec:

shift $#

Pour supprimer les 3 premiers paramètres positionnels:

shift 3

Décalage "pop" des premiers N paramètres positionnels. En utilisant $ #, nous obtenons le nombre total de paramètres positionnels. La commande supprime ainsi tous les paramètres positionnels.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.