问题:
一般来说,我寻求一种可复制的方式来做这些事情:
command expression_to_be_valuated
其中expression_to_be_valuated
将是任何表达式,一旦执行就会给出,例如一个数字,所以我会
command parameter
其中parameter是一个数字。
现状
我有以下表达式
kill ps aux | grep '[m]ono ./' | awk '{print $2}'
如果您从上面command
引用我的解释kill
且expression_to_be_valuated
为ps aux | grep '[m]ono ./' | awk '{print $2}'
我希望之前评估这部分:
ps aux | grep '[m]ono ./' | awk '{print $2}'
然而,我试图围绕它''
(据我所知,到目前为止意味着"在#34之前评估此表达式;通常它有效,但在这种情况下我不能使其有效,或在其上调用eval,但它不起作用。
尝试:
ps 'aux | grep '[m]ono ./' | awk '{print $2}''
答案 0 :(得分:1)
您可以使用command substitution并说ps $( command )
:
ps $(aux | grep '[m]ono ./' | awk '{print $2}')
$(command)
表达式评估command
,因此如果您说ps $(command)
,ps
会将command
的输出作为输入。
另请注意,grep '[m]ono ./' | awk '{print $2}'
可以简化为awk '/mono .\// {print $2}'
。
从给定的链接:
命令替换允许输出命令来替换 命令本身。