Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Enhanced version that preserves original nvme list formatting
- enhanced_nvme_list() {
- # Get original nvme list output
- local output
- output=$(nvme list)
- if [ $? -ne 0 ] || [ -z "$output" ]; then
- echo "Error: Failed to execute 'nvme list'"
- exit 1
- fi
- # Parse output line by line
- IFS=$'\n' read -d '' -r -a lines <<< "$output"
- # Print header with additional columns
- if [ ${#lines[@]} -ge 2 ]; then
- echo "${lines[0]} EUI64 NGUID"
- echo "${lines[1]} -------------------- ---------------------------------"
- # Process data lines
- for ((i=2; i<${#lines[@]}; i++)); do
- line="${lines[i]}"
- if [[ -n "$line" && ! "$line" =~ ^[[:space:]]*$ ]]; then
- # Extract device name (first field)
- dev=$(echo "$line" | awk '{print $1}')
- # Get ns-descs info
- eui64="-"
- nguid="-"
- if [ -e "$dev" ]; then
- ns_descs=$(nvme ns-descs "$dev" 2>/dev/null)
- if [ $? -eq 0 ]; then
- eui64=$(echo "$ns_descs" | awk '/eui64/ {print $3; exit}' | tr '[:lower:]' '[:upper:]')
- nguid=$(echo "$ns_descs" | awk '/nguid/ {print $3; exit}' | tr '[:lower:]' '[:upper:]')
- fi
- fi
- # Default values if empty
- [ -z "$eui64" ] && eui64="-"
- [ -z "$nguid" ] && nguid="-"
- # Print line with additional columns
- printf "%-60s %-20s %-20s\n" "$line" "$eui64" "$nguid"
- fi
- done
- fi
- }
- # Run the enhanced version
- enhanced_nvme_list
Advertisement
Add Comment
Please, Sign In to add comment