Bom dia,
Acredito que o código esteja errado ao realizar a compactação, pois ele deveria usar um array para salvar mais de um arquivo. Neste caso a correção seria essa:
Bom dia,
Acredito que o código esteja errado ao realizar a compactação, pois ele deveria usar um array para salvar mais de um arquivo. Neste caso a correção seria essa:
Olá, Pedro!
Você está correto ao sugerir o uso de arrays para lidar com múltiplos arquivos. No script original, a variável arquivos
armazena todos os nomes dos arquivos como uma única string. Ao usar um array, você pode manipular cada arquivo individualmente.
No seu exemplo, a modificação principal é a utilização da opção -a
no comando read
, que armazena os arquivos em um array chamado arquivos
. Depois, na linha do comando tar
, você usa ${arquivos[@]}
para expandir todos os elementos do array como argumentos separados.
Aqui está uma explicação do que foi feito:
read -p "Lista de arquivos separados por espaço:" -a arquivos
-a arquivos
: Lê a entrada do usuário e armazena cada item separado por espaço em um array chamado arquivos
.tar -czf "$arquivo_saida" "${arquivos[@]}"
${arquivos[@]}
: Expande todos os elementos do array arquivos
como argumentos separados para o comando tar
.Essa abordagem permite a manipulação dos arquivos de forma mais flexível dentro do script.
Bons estudos!