Назад | Перейти на главную страницу

Лучший способ создать список параметров из строки

У меня есть переменная со списком путей, разделенных пробелами. Мне нужно отправить эти пути в программу в качестве такого параметра script.sh -i /dir1 -i /dir2. Как лучше всего создать такой список параметров? Что-то вроде $(echo "$paths" | sed 's|\([^[:space:]]\+\)|-i \1|g) будет работать, но его невозможно прочитать, учитывая тот факт, что он является частью make-файла.

list="one two three"
for i in $list; do params="$params -i $i"; done
script.sh $params

У вас будут проблемы с путями с пробелами, используя : как разделитель путей лучше

использовать массивы bash

paths="/dir1 /dir2"
params=()
for path in $paths; do params+=( -i $path ); done
script.sh "${params[@]}"