Created by
CecilWesterhof.
I want to display my CPU usage. For this I need information (the first line) from /proc/stat. Here a proc that fetches this line, puts it in a easy to use dict, which also has a total added and returns it.
proc getStatCPU {} {
set infoLst [lrange [getLineAsList /proc/stat] 1 7]
lassign $infoLst user nice system idle iowait irq softirq
dict set statCPU user $user
dict set statCPU nice $nice
dict set statCPU system $system
dict set statCPU idle $idle
dict set statCPU iowait $iowait
dict set statCPU irq $irq
dict set statCPU softirq $softirq
dict set statCPU total [::tcl::mathop::+ {*}$infoLst]
return $statCPU
}
For getLineAsList see
Get a Certain Line From a File.
I will also post the script.
As always: comments, tips and questions are appreciated.
APN A comment about style - the braces around variable names are not required (and generally frowned upon by long-time Tclers) unless the name has "special characters" such as delimiters. Use $infoLst, $nice etc. instead.
CecilWesterhof When it is frowned upon I maybe should change it. Some bash people also frowned on it, but in bash I always use it, because it is to easy to get into a situation where it is important.
KPV Check out
CPU Monitor which visually displays the CPU usage for every core.