pgrep -f有多个参数

tom*_*sen 13 regex bash shell grep

我试图找到一个包含术语"someWord"的特定过程和另外两个由$ 1和$ 2表示的术语

 7   regex="someWord.*$1.*$2"
 8   echo "$regex"
 9   [ `pgrep -f $regex` ] && return 1 || return 0
Run Code Online (Sandbox Code Playgroud)

返回

./test.sh foo bar
someWord.*foo bar.*
./test.sh: line 9: [: too many arguments
Run Code Online (Sandbox Code Playgroud)

我的正则表达式会怎么样?直接在shell中执行该pgrep工作正常.

小智 8

好先生,也许是这个

[[ `pgrep -f "$regex"` ]] && return 1 || return 0
Run Code Online (Sandbox Code Playgroud)

或这个

[ "`pgrep -f '$regex'`" ] && return 1 || return 0
Run Code Online (Sandbox Code Playgroud)