functions.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/bash
  2. FONT_COLOR=(31 32 33 34 35 36)
  3. function cow_says() {
  4. font_index=$((RANDOM % ${#FONT_COLOR[@]}))
  5. echo -en "\033[0;${FONT_COLOR[${font_index}]};5m"
  6. echo -en "${DO_RESET}"
  7. }
  8. function pretty_print() {
  9. echo -e "${NORM_CYN}$(date '+%Y-%m-%d %H:%M:%S') ${DO_RESET}${1}${DO_RESET}"
  10. }
  11. function date_range() {
  12. dt=${1}
  13. if [ "${#dt}" = 17 ] && [[ "${dt}" =~ [0-9]{8}-[0-9]{8} ]]; then
  14. start_day=${dt:0:8}
  15. end_day=${dt:9:16}
  16. elif [ "${#dt}" = 9 ] && [[ "${dt}" =~ [0-9]{8}- ]]; then
  17. start_day=${dt:0:8}
  18. if [ "$(uname)" = "Linux" ]; then
  19. end_day=$(date -d '-1 day' +%Y%m%d)
  20. else
  21. end_day=$(date -v-1d +%Y%m%d)
  22. fi
  23. elif [ "${#dt}" -ge 17 ] && [[ "${dt}" =~ [0-9]{8},[0-9]{8}[,[0-9]{8}]* ]]; then
  24. DATE_RANGE=(${dt//,/ })
  25. return
  26. else
  27. DATE_RANGE=("${dt}")
  28. return
  29. fi
  30. DATE_RANGE=("${start_day}")
  31. while [ "${start_day}" -lt "${end_day}" ]; do
  32. if [ "$(uname)" = 'Linux' ]; then
  33. start_day=$(date -d "1 day ${start_day}" +%Y%m%d)
  34. else
  35. start_day_ts=$(date -j -f %Y%m%d "${start_day}" +%s)
  36. start_day_ts=$(("${start_day_ts}" + 86400))
  37. start_day=$(date -r ${start_day_ts} +%Y%m%d)
  38. fi
  39. DATE_RANGE+=("${start_day}")
  40. done
  41. }
  42. function waiting() {
  43. while true; do
  44. echo -en "\r\033[J请稍候."
  45. sleep 0.5
  46. echo -en "\r\033[J请稍候.."
  47. sleep 0.5
  48. echo -en "\r\033[J请稍候..."
  49. sleep 0.5
  50. echo -en "\r\033[J请稍候...."
  51. sleep 0.5
  52. echo -en "\r\033[J请稍候....."
  53. sleep 0.5
  54. echo -en "\r\033[J请稍候......"
  55. sleep 0.5
  56. done
  57. }