从string创build参数列表的最佳方法

我有一个空格分隔的path列表的variables。 我需要将这些path作为参数发送到程序script.sh -i /dir1 -i /dir2 。 什么是创build这样的参数列表的最佳方式? 像$(echo "$paths" | sed 's|\([^[:space:]]\+\)|-i \1|g)会工作,但它是不可读的,因为它是生成文件的一部分。

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

你会遇到与空间path的麻烦,使用:作为path分隔符更好

使用bash数组

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