从字符串创建参数列表的最佳方法

从字符串创建参数列表的最佳方法

我有一个变量,其中包含空格分隔的路径列表。我需要将这些路径作为参数发送给程序,如下所示script.sh -i /dir1 -i /dir2。创建此类参数列表的最佳方法是什么?类似这样的方法$(echo "$paths" | sed 's|\([^[:space:]]\+\)|-i \1|g)可以工作,但鉴于它是 makefile 的一部分,因此无法读取。

答案1

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

路径中有空格会造成麻烦,:最好使用路径分隔符

答案2

使用 bash 数组

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

相关内容