我有一个变量,其中包含空格分隔的路径列表。我需要将这些路径作为参数发送给程序,如下所示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[@]}"