<Anterior | Conteúdo | Próxima>
Excluindo um Array
Para excluir uma matriz, use o não definido comando:
[me @ linuxbox ~] $ foo = (abcdef)
[me @ linuxbox ~] $ echo $ {foo [@]}
abcdef
[me @ linuxbox ~] $ não definido
[me @ linuxbox ~] $ echo $ {foo [@]}
[me @ linuxbox ~] $
[me @ linuxbox ~] $ foo = (abcdef)
[me @ linuxbox ~] $ echo $ {foo [@]}
abcdef
[me @ linuxbox ~] $ não definido
[me @ linuxbox ~] $ echo $ {foo [@]}
[me @ linuxbox ~] $
unset também pode ser usado para excluir elementos únicos da matriz:
[me @ linuxbox ~] $ foo = (abcdef)
[me @ linuxbox ~] $ echo $ {foo [@]}
abcdef
[me @ linuxbox ~] $ remover 'foo [2]' [me @ linuxbox ~] $ echo $ {foo [@]} abdef
[me @ linuxbox ~] $ foo = (abcdef)
[me @ linuxbox ~] $ echo $ {foo [@]}
abcdef
[me @ linuxbox ~] $ remover 'foo [2]' [me @ linuxbox ~] $ echo $ {foo [@]} abdef
Neste exemplo, excluímos o terceiro elemento do array, o subscrito 2. Lembre-se, os arrays começam com o subscrito zero, não um! Observe também que o elemento da matriz deve ser colocado entre aspas para evitar que o shell execute a expansão do nome do caminho.
Curiosamente, a atribuição de um valor vazio a uma matriz não esvazia seu conteúdo:
[me @ linuxbox ~] $ foo = (abcdef)
[me @ linuxbox ~] $ foo = [me @ linuxbox ~] $ echo $ {foo [@]} bcdef
[me @ linuxbox ~] $ foo = (abcdef)
[me @ linuxbox ~] $ foo = [me @ linuxbox ~] $ echo $ {foo [@]} bcdef
Qualquer referência a uma variável de matriz sem um subscrito refere-se ao elemento zero da matriz:
[me @ linuxbox ~] $ foo = (abcdef)
[me @ linuxbox ~] $ echo $ {foo [@]}
abcdef [me @ linuxbox ~] $ foo = A
[me @ linuxbox ~] $ echo $ {foo [@]}
Um bcdef
[me @ linuxbox ~] $ foo = (abcdef)
[me @ linuxbox ~] $ echo $ {foo [@]}
abcdef [me @ linuxbox ~] $ foo = A
[me @ linuxbox ~] $ echo $ {foo [@]}
Um bcdef