Recuperando múltiples argumentos para una sola opción usando getopts en Bash

Necesito ayuda congetopts.

Creé un script Bash que se ve así cuando se ejecuta:

$ foo.sh -i env -d directorio -s subdirectorio -f archivo

Funciona correctamente cuando se maneja un argumento de cada bandera. Pero cuando invoco varios argumentos de cada indicador, no estoy seguro de cómo extraer la información de múltiples variables de las variables engetopts.

while getopts ":i:d:s:f:" opt
   do
     case $opt in
        i ) initial=$OPTARG;;
        d ) dir=$OPTARG;;
        s ) sub=$OPTARG;;
        f ) files=$OPTARG;;

     esac
done

Después de tomar las opciones, quiero construir estructuras de directorios a partir de las variables

foo.sh -i test -d directory -s subdirectory -s subdirectory2 -f file1 file2 file3

Entonces la estructura del directorio sería

/test/directory/subdirectory/file1
/test/directory/subdirectory/file2
/test/directory/subdirectory/file3
/test/directory/subdirectory2/file1
/test/directory/subdirectory2/file2
/test/directory/subdirectory2/file3

¿Algunas ideas

Respuestas a la pregunta(9)

Su respuesta a la pregunta