2017-11-27 13 views
1

プロセスのCPU使用率(%cpu)を取得して変数に格納しようとしています。 Iは、シェルスクリプトを使用して、%CPUおよびコマンドを表示することができる午前:シェルスクリプト - CPU使用率(%cpu)を取得して変数に保存する

echo Enter the process name you wish to fetch: 
read pn 
#Displays %cpu of process 
ps -eo %cpu,command | grep $pn 

出力:

Enter the process name you wish to fetch: 
terminal 
0.0 grep terminal 

'0.0' %CPUと 'grepの端末は' コマンド(プロセス)を定義定義。あなたは変数に、使用値を保存するために、このようなものが必要

declare -x cpuUsage=[%cpu of process] 
echo $cpuUsage 
+0

'' 0.0 grep terminal'があなたが望むものを出力しているとは思えません。いくつかの背景については、この[質問とその回答](https://unix.stackexchange.com/questions/37508/in-what-order-do-piped-commands-run)を参照してください。 –

答えて

0

:どのように私のような変数にCPU使用率(%のCPU)の値を置くことができる

echo Enter the process name you wish to fetch: 
read pn 
cpuusage=`ps -eo %cpu,command | grep $pn | grep -v grep | head -n 1 | sed 's,^ *,,' | cut -d ' ' -f 1` 
echo $cpuusage 

多くのプロセスが指定された名前と一致する場合、単にps出力によって最初に返されたものを取ります。

+0

それはとてもうまく動作します:)ありがとう。 'sed'コマンドが何をしているのか教えてください。 – 7Brankovic

+0

sedコマンドは、cpu使用率が100%以下の場合に存在する先頭の空白のみをトリミングし、スペース文字を区切り文字として使用する次のcutコマンドと干渉します –