Como desarmar os parâmetros posicionais?


11

Como eu faço isso:

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

Ao fazer set "", $#ainda será 1 e não 0.

Respostas:


14

Ok, isso foi apenas estúpido, e eu descobri que usando set --funcionará.


@ Gilles: De acordo com a página de manual do bash, set -sem argumentos, os parâmetros posicionais permanecem inalterados.
Camh

@camh Devo discordar. Vejo isso no manual: set - Se nenhum argumento seguir esta opção, os parâmetros posicionais não serão definidos. Caso contrário, os parâmetros posicionais são definidos como args, mesmo que alguns deles comecem com a -.
Kdubs

@kdubs para os quais você está citando a página de manual set --. Eu usei set -(hífen único), que diz: "Se não houver argumentos, os parâmetros posicionais permanecem inalterados".
camh

você está certo. Eu os confundi. minha tela fez o seu - olhar como -
kdubs

4

Desmarque facilmente todos os parâmetros posicionais com:

shift $#

Para remover os três primeiros parâmetros posicionais:

shift 3

Shift "sai" dos primeiros N parâmetros posicionais. Usando $ #, obtemos o número total de parâmetros posicionais. O comando, portanto, exibe todos os parâmetros posicionais.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.