shell脚本比较值

时间:2012-03-26 15:09:31

标签: linux shell

在shell脚本中,我如何比较这些变量

  echo $du   //170G
  echo $expected_du // 40G

   if [ $expected_du -le $du ]
   then
        echo "$du exceeded";
   fi  

1 个答案:

答案 0 :(得分:2)

使用-k标记du,返回大小,以千字节为单位,不含任何单位。例如:

$ du -ks /tmp
1068    /tmp

现在您有一个可以使用-le进行比较的数字。

您还可以在脚本中添加多个内容:

case $du in
  *K)   du_k=${du%K};;
  *M)   du_k=$(( ${du%M} * 1024 ));;
  *G)   du_k=$(( ${du%G} * 1024 *1024 ));;
  *T)   du_k=$(( ${du%T} * 1024 *1024 * 1024 ));;

  *[0-9])   du_k=$du;;

  *)    echo "What?"
      exit 1
      ;;
esac

echo $du_k