tivasyk

parsing utpime output into an array with named fields

Jul 18th, 2019
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.19 KB | None | 0 0
  1. #!/usr/bin/env bash
  2. # tivasyk <[email protected]>
  3.  
  4. # Dump uptime command output
  5. # Format: 09:31:12 up 4 days, 19:26,  2 users,  load average: 0.19, 0.21, 0.15
  6. DUMP_ARRAY=()
  7. IFS=", " read -r -a DUMP_ARRAY <<< "$(uptime)"
  8.  
  9. # Report on read tokens
  10. printf "Read %s tokens:\n" "${#DUMP_ARRAY[@]}"
  11. for ((i=0; i<"${#DUMP_ARRAY[@]}"; i++)); do
  12.     printf "  Array[%s]: %s\n" "${i}" "${DUMP_ARRAY[i]}"
  13. done
  14.  
  15. # Store useful data in another array
  16. NAME_ARRAY=()   # This will store variable names
  17. DATA_ARRAY=()   # This will store variable data
  18.  
  19. # Store UPTIME_DAYS
  20. NAME_ARRAY+=("UPTIME_DAYS")
  21. DATA_ARRAY+=("${DUMP_ARRAY[2]}")
  22.  
  23. # Store UPTIME_TIME
  24. NAME_ARRAY+=("UPTIME_TIME")
  25. DATA_ARRAY+=("${DUMP_ARRAY[4]}")
  26.  
  27. # Store LOGGED_USERS
  28. NAME_ARRAY+=("LOGGED_USERS")
  29. DATA_ARRAY+=("${DUMP_ARRAY[5]}")
  30.  
  31. # Store CPU_LOAD
  32. NAME_ARRAY+=("CPU_LOAD_1M")
  33. DATA_ARRAY+=("${DUMP_ARRAY[9]}")
  34. NAME_ARRAY+=("CPU_LOAD_5M")
  35. DATA_ARRAY+=("${DUMP_ARRAY[10]}")
  36. NAME_ARRAY+=("CPU_LOAD_15M")
  37. DATA_ARRAY+=("${DUMP_ARRAY[11]}")
  38.  
  39. # List saved data in a loop
  40. printf "Saved variables:\n"
  41. for ((i=0; i<"${#NAME_ARRAY[@]}"; i++)); do
  42.     printf "  Variable %s: %s=%s\n" "${i}" "${NAME_ARRAY[${i}]}" "${DATA_ARRAY[${i}]}"
  43. done
Advertisement
Add Comment
Please, Sign In to add comment