Implementei a lógica de checagem do diretório do arquivo seguindo o exercício anterior, ou seja, ele checa se os parâmetros foram passados corretamente, depois eu defino as variáveis com base nas posições dos parâmetros passados e então verifico se os diretórios da segunda posição são válidas, caso não sejam, um erro estoura para o usuário.
Se tudo estiver correto, é gerado um arquivo compactado e exibido para o usuário o sucesso da execução do Script.
#! /bin/bash
if [ "$#" -lt 2 ]; then
echo "The program $0 request file name and name to compress"
exit 1
fi
aggregated_file="$1"
dir_for_files=("${@:2}")
for file in "${dir_for_files[@]}"; do
if [ ! -e "$file" ]; then
echo "Error: The path '$file' does not exist."
exit 1
fi
done
tar -czf "$aggregated_file" "${dir_for_files[@]}"
echo "compress successfully at $aggregated_file"