Uma matriz de matrizes é uma má idéia no shell (qualquer shell). Você precisa de algum outro idioma.
how is array
arr
being defined.?a='domain.de;de;https' arr=(${a//;/ })
Funciona por:
- substituindo cada
;
porspace
- Assumindo que o IFS é espaço, tabulação, nova linha (o padrão)
- divisão no espaço (incluída no IFS), a expansão sem aspas de
${...}
- atribuindo-o a uma matriz
(...)
- e nomeando essa matriz
arr=
.
What is the advantage of defining it like this?
Nenhum, apenas problemas:
- Se qualquer um dos elementos contiver um espaço, uma guia ou uma nova linha, ele será dividido.
- Como a globbing não foi desativada, qualquer
*
,?
ou[ ]
será expandido para arquivos correspondentes. - Se o nullglob estiver ativo, qualquer string contendo
*
,?
ou[ ]
será removida. - se o failglob estiver ativo, qualquer um dos caracteres anteriores gerará um erro.
Em suma, a divisão no shell está cheia de dicas.