* negative mfs size at large memory [#u8b08276] - ページ: [[LiveCD/4.4/BTS]] - 投稿者: [[kaw]] - 優先順位: 低 - 状態: 着手 - カテゴリー: malfunction - 投稿日: 2009-02-26 (木) 09:03:35 - バージョン: ** メッセージ [#z0e47bba] more than 2^31 bytes are displayed as negative value. ~ Because ksh can handle integer range of -2^31 ... 2^31-1 On ksh, this is like this; $ echo $((2147483647)) # 2^31-1 2147483647 $ echo $((2147483647+1)) # 2^31 -2147483648 Here's a concept code to check two strings representing big non-negative integer values. #!/bin/ksh function isgreater { # check presence of arguments # [ $# -lt 2 ] && return -- -1 x=$1 y=$2 # Are arguments both form of positive integer? # case "$x" in 0|[1-9]*([0-9])) : ;; # ok, do nothing *) return -- -2 ;; # ng, string is not positive integer esac case "$y" in 0|[1-9]*([0-9])) : ;; # ok, do nothing *) return -- -2 ;; # ng, string is not positive integer esac # Compare it # if [ ${#x} -gt ${#y} ]; then return 0 elif [ ${#x} -eq ${#y} ]; then if [ $x -gt $y ]; then return 0 else return 1 fi else return 1 fi } isgreater $1 $2 case $? in 0) echo $1 is greater than $2. ;; 1) echo $1 is NOT greater than $2. ;; *) echo argument format error ;; esac Note -This is needed by very early stage of boot time, so only ksh built-ins can be used. -This is ksh-specific code. -------- - fMhvx5 Cool lol hey bla bla bla bla -- [[Jonny]] &new{2010-05-21 (金) 17:03:11}; - OegQlC Cool lol hey bla bla bla bla -- [[Jonny]] &new{2010-05-21 (金) 18:44:37}; - siNemQ Cool lol hey bla bla bla bla -- [[Jonny]] &new{2010-05-21 (金) 20:25:42}; - uUQGi6 Cool lol hey bla bla bla bla -- [[Jonny]] &new{2010-05-21 (金) 22:09:04}; #comment