2013-08-19 35 views
0

假設我想從「ps -eaf」 命令的輸出中選擇6547,我該怎麼做?我想選擇這個值,並給它「kill」命令來殺死這個進程。從ps的輸出中選擇一個值-eaf

root  6547  1 0 Aug07 ?  00:00:00 
root  14805  2 0 Aug07 ?  00:00:00 
root  17443 30043 0 16:21 pts/0 00:00:00 

回答

1

您可能需要寫一個小的shell腳本 - 這將基本上包含以下選項 -

pidList=`ps -eaf | awk ' print $2'` 
    for pid in pidList 
    cmd="kill -9 $pid" 
    `$cmd` 

現在根據您critieria(如進程名,用戶等),你可以採取行動爲具體過程。所以這裏的jist是使用awk命令來得到你的確切列。

+1

它曾與一些變化:'PS -eaf | grep'processname *'| awk'{print $ 2「」$ 1「\ n」}'| grep'用戶名*'| awk'{print $ 1}''給了我確切的價值。我想你在awk中忘記了{} – sattu

+0

嘗試使用ps和-U選項,如果只有特定用戶需要它。那會更好! –