[RESOLVIDO] Criar um Array com saída de comando em bash

Olá. Estou querendo armazenar a saída do comando groups em um array.

A saída do comando é assim:
image

eu queria conseguir armazenar cada grupo desse em um elemento do array. Alguém poderia me ajudar com isso? Não sou muito fluente em bash ainda

espero que alguém aqui me ajude pq eu sinceramente odeio o stackoverflow

1 curtida

Como a saída é uma linha única com os itens separados por espaços, o armazenamento pode ser feito assim:

read -ra GRUPOS <<<"$(groups)"
echo "${GRUPOS[0]}"

read lê uma única linha. A opção -r armazena caracteres especiais como eles estão, e a opção -a cria uma array com os conteúdos da linhas separados por espaço.

Para a resposta ficar um pouco mais completa, vou citar aqui alguns exemplos diferentes:

# Usando algum delimitador além de espaço no read -ra - exemplo, a vírgula:
IFS=, read -ra COLUNAS < arquivo.csv
# Transformar um item por linha em array
mapfile -t LINHAS < <(comando)
1 curtida

Este tópico foi fechado automaticamente 3 dias depois da última resposta. Novas respostas não são mais permitidas.