简体   繁体   English

shell脚本比较值

[英]shell script comparison of values

In shell script how can i compare these kind of variable 在shell脚本中,我如何比较这些变量

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

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

Use the -k flag to du , which returns the size in kilobytes without any units. -k标志用于du ,它返回以千字节为单位的大小而不包含任何单位。 For example: 例如:

$ du -ks /tmp
1068    /tmp

Now you have a number that you can compare using -le . 现在您有一个可以使用-le进行比较的数字。

You could also multiple things out in your script: 您还可以在脚本中添加多个内容:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM