2010-08-23 44 views
2

mysqladmin命令以字節爲單位返回值。如果大於1 MB(1048576字節),我希望看到以MB爲單位的值。計算MB的字節數

$ mysqladmin variables 
+---------------------------------+----------------------------------+ 
| Variable_name     | Value       | 
+---------------------------------+----------------------------------+ 
| auto_increment_increment  | 1        | 
| auto_increment_offset   | 1        | 
... 
| interactive_timeout    | 14400       | 
| join_buffer_size    | 10481664       | 
| key_buffer_size     | 1073741824      | 

我可以一次保存和計算每個變量。但是,如何以MB顯示所有值?

myval1=$(((`mysqladmin variables | grep '\<key_buffer_size\>' | awk '{print $4}'`)/1048576)) 

回答

2

關閉我的頭頂,像這樣的工作:

#!/bin/bash 

if [ "$1" = variables ]; then 
    /moved/elsewhere/mysqladmin $* | awk '{ sz=$4; if (sz>1048576) 
     { sz=sz/1048576 "Mb"; } 
     print $1 $2 $3 sz $5; }' 
else 
    /moved/elsewhere/mysqladmin $* 
fi 
+0

有趣!是否可以輪流? – shantanuo 2010-08-23 12:01:49

+0

是的 - 但awk沒有內置的輪功能 - 請參閱http://www.gnu.org/manual/gawk/html_node/Round-Function.html – symcbean 2010-08-23 12:08:57

+0

該頁面顯示printf可以舍入(儘管不準確)。你能讓我知道如何在這裏添加printf嗎? – shantanuo 2010-08-23 12:13:50