2015-07-21 82 views
0

問題:如何傳遞一個表達式作爲參數?

從總體上看,我正在尋找一個可複製的方式做這樣的事情:

command expression_to_be_valuated 

其中expression_to_be_valuated會有什麼表現,這一次執行將給予,例如數字,所以我會有

command parameter 

其中參數是一個數字。

現狀

我有以下的表達

kill ps aux | grep '[m]ono ./' | awk '{print $2}' 

在哪裏,如果你從上面commandkill參考我的解釋和expression_to_be_valuatedps aux | grep '[m]ono ./' | awk '{print $2}'

我想這部分是以前評估過:

ps aux | grep '[m]ono ./' | awk '{print $2}' 

但是我試着在它周圍有''(我的理解到現在爲止意味着「評估此表達式之前」,通常它可以工作,但在這種情況下,我無法使其工作或調用評估它,但它不起作用。

嘗試次數:

ps 'aux | grep '[m]ono ./' | awk '{print $2}'' 

回答

1

您可以使用command substitutionps $(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}'


從給定鏈路:

命令替換允許命令的輸出,以取代 命令本身。

+0

非常感謝!所以這是$(),這意味着評估這件事情之前!我會盡快將其標記爲答案。然而,要糾正我的問題,我所做的就是殺死$(ps aux | grep'[m] ono ./'| awk'{print $ 2}') – Cher

+1

'aux'是'ps'調用的一部分,不是開頭的管道命令「grep」。也不要使用'ps | grep'使用'pgrep'。 –

+1

@CherrysaHerrim很高興看到它對你有用!另外,請考慮Etan正在評論的內容 - 有趣且有用。 – fedorqui

相關問題