Posted to tcl by nscerqueira at Thu Mar 14 00:21:39 GMT 2013view raw

  1. proc Go {fid} {
  2.  
  3. if {[eof $fid]} {
  4. close $fid
  5. }
  6.  
  7. set cpu [gets $fid]
  8. puts "#### $cpu"
  9.  
  10. if {$cpu >=0} {
  11. set cpuUser [string range [lindex $cpu 2] 0 [expr [string length [lindex $cpu 2]] -2]]
  12. set cpuSys [string range [lindex $cpu 4] 0 [expr [string length [lindex $cpu 4]] -2]]
  13. set cpuTotal [expr $cpuUser + $cpuSys]
  14. puts " $cpu : CPU Total - $cpuTotal"
  15. puts $cpu
  16.  
  17. }
  18. }
  19.  
  20.  
  21. set msg "\"CPU usage\""
  22. #set fid [open "|top -l 0 | grep $msg" r]
  23. set fid [open "|ls -la" r]
  24. fconfigure $fid -blocking 0
  25. fileevent $fid readable [list Go $fid]
  26.  
  27. vwait done
  28.  
  29. close $fid
  30.