Posted to tcl by Napier at Mon Apr 13 17:24:05 GMT 2015view pretty

set fh [open "/proc/meminfo"]
			set mem [read $fh]
			close $fh
			if {$mem != ""} {
				set mem [split $mem \n]
				set complete 0
				foreach line $mem {
					if {[string match "*MemTotal*" $line]} {
						set memtotal [string trim [string map {"MemTotal:" "" "kB" ""} $line]]
					} elseif {[string match "*MemFree*" $line]} {
						set memfree [string trim [string map {"MemFree:" "" "kB" ""} $line]]
					} elseif {[string match "*Cached*" $line]} {
						set cached [string trim [string map {"Cached:" "" "kB" ""} $line]]
					} elseif {[string match "*Buffers*" $line]} {
						set buffers [string trim [string map {"Buffers:" "" "kB" ""} $line]]
					}
					if {[info exists memtotal] && [info exists memfree] && [info exists cached] && [info exists buffers]} {
						set complete 1
						break
					}
				}
				if {$complete == 1} {
					set mempct [expr {double(($memfree + $cached + $buffers)) / $memtotal}]
					puts $mempct
				}
			}