Получение нескольких аргументов для одного параметра с помощью getopts в Bash

Мне нужна помощь сgetopts.

Я создал скрипт Bash, который выглядит так при запуске:

$ foo.sh -i env -d каталог -s подкаталог -f файл

Он работает правильно при обработке одного аргумента от каждого флага. Но когда я вызываю несколько аргументов из каждого флага, я не уверен, как извлечь информацию из нескольких переменных из переменных вgetopts.

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

После получения опций я хочу построить структуру каталогов из переменных

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

Тогда структура каталога будет

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

Есть идеи?

Ответы на вопрос(9)

Ваш ответ на вопрос