conversion.sh 783 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. gibibytes_to_bytes()
  2. {
  3. echo $(( 1024 * 1024 * 1024 * "${1}" ))
  4. }
  5. mebibytes_to_bytes()
  6. {
  7. echo $(( 1024 * 1024 * "${1}" ))
  8. }
  9. kibibytes_to_bytes()
  10. {
  11. echo $(( 1024 * "${1}" ))
  12. }
  13. bytes_to_gibibytes()
  14. {
  15. echo $(( "${1}" / 1024 / 1024 / 1024 ))
  16. }
  17. to_bytes()
  18. {
  19. case "${1: -1}" in
  20. b) echo "${1:0: -1}" ;;
  21. [0-9]) echo "${1}" ;;
  22. K) kibibytes_to_bytes "${1:0: -1}" ;;
  23. M) mebibytes_to_bytes "${1:0: -1}" ;;
  24. G) gibibytes_to_bytes "${1:0: -1}" ;;
  25. S) sectors_to_bytes "${1:0: -1}" ;;
  26. *) fatal UNIT_E "${1:-1} is not a valid unit" ;;
  27. esac
  28. }
  29. bytes_to_sectors()
  30. {
  31. echo $(( "${1}" / 512 ))
  32. }
  33. to_sectors()
  34. {
  35. bytes_to_sectors $( to_bytes "${1}" )
  36. }
  37. sectors_to_gibibytes()
  38. {
  39. echo $(bytes_to_gibibytes $(sectors_to_bytes "${1}"))
  40. }
  41. sectors_to_bytes()
  42. {
  43. echo $(( 512 * "${1}" ))
  44. }