在 bash 中传递字符串或数组作为参数

在 bash 中传递字符串或数组作为参数

我有excludes一个变量,它是传递给 grep 的正则表达式列表:

$ echo $excludes
-e re_1 -e re_2 -e re_3...

我希望能够做类似的事情

$ my | pipeline | grep -v "${excludes}"

但这行不通。

我还尝试使用数组,其中grep -v "${excludes[@]}"每个数组成员都是“-e blah”。这也行不通。

我如何以这样的编程方式传递参数?

答案1

数组可以工作,但您需要将选项和值存储为单独的元素:

excludes=(-e "regex1" -e "regex2")
grep -v "${excludes[@]}" ...

相关内容