如何将命令的一部分作为变量bash传递?

cas*_*n04 2 linux bash

a="grep ssh | grep -v grep"
ps -ef | $a | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

我怎样才能完成上述工作?我有一个部分,我不仅要传递grep术语,但可能传递多个grep术语,这意味着我需要将"term1 | grep term2"作为变量传递.

编辑:

另一个.下面的回答对我来说非常合适.谢谢你,先生!

kon*_*box 5

改为创建一个函数:

a() {
    grep ssh | grep -v grep
}
ps -ef | a | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是使用eval,但除非经过适当的消毒,否则不安全,不建议使用.

a="grep ssh | grep -v grep"
ps -ef | eval "$a" | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)