Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

shift - Obtendo acesso a muitos argumentos

Mas o que acontece quando damos ao programa um grande número de argumentos como este:


imagem

[me @ linuxbox ~] $ parâmetro positivo *


Número de argumentos: 82

$ 0 = / home / me / bin / posit-param

$ 1 = endereços.ldif

$ 2 = bin

$ 3 = bookmarks.html

$ 4 = debian-500-i386-netinst.iso

$ 5 = debian-500-i386-netinst.jigdo

$ 6 = debian-500-i386-netinst.template

$ 7 = debian-cd_info.tar.gz


$ 8 = Desktop

$ 9 = dirlist-bin.txt

$ 8 = Desktop

$ 9 = dirlist-bin.txt


Neste sistema de exemplo, o curinga * se expande em 82 argumentos. Como podemos processar tantos? O shell fornece um método, embora desajeitado, para fazer isso. o mudança comando faz com que todos os parâmetros “movam um para baixo” cada vez que é executado. Na verdade, usando mudança, é possível sobreviver com apenas um parâmetro (além de $0, que nunca muda):



#! / Bin / bash


# posit-param2: script para exibir todos os argumentos count = 1

enquanto [[$ # -gt 0]]; Faz

echo "Argumento $ count = $ 1" count = $ ((count + 1))

turno feito

#! / Bin / bash


# posit-param2: script para exibir todos os argumentos count = 1

enquanto [[$ # -gt 0]]; Faz

echo "Argumento $ count = $ 1" count = $ ((count + 1))

turno feito


Toda vez mudança é executado, o valor de $2 é movido para $1, o valor de $3 é movido para $2 e assim por diante. O valor de $# também é reduzido em um.

De acordo com o relatório posit-param2 programa, criamos um loop que avalia o número de argumentos restantes e continua enquanto houver pelo menos um. Nós exibimos o argumento atual, incrementamos a variável contar com cada iteração do loop para fornecer uma contagem contínua do número de argumentos processados ​​e, finalmente, executar um mudança carregar

$ 1 com o próximo argumento. Aqui está o programa em funcionamento:


[me @ linuxbox ~] $ posit-param2 abcd

Argumento 1 = a Argumento 2 = b Argumento 3 = c Argumento 4 = d

[me @ linuxbox ~] $ posit-param2 abcd

Argumento 1 = a Argumento 2 = b Argumento 3 = c Argumento 4 = d


Top OS Cloud Computing na OnWorks: