Ecco lo script, l'ho trovato ![]()
#!/bin/bash
# USB Power Switching Script
# Script to toggle power management status of USB devices
# by DanyTheBat
declare -a ARRAYDEV
declare -a ARRAYPROD
declare -a ARRAYPWRSTATUS
declare -a ARRAYMAXPWR
let nprod=0
function padl {Â Â
  tmp=$2
  while [ ${#tmp} -lt $1 ];
  do
    tmp="$tmp "
  done
  echo "$tmp"
}
function padr {Â Â
  tmp=$2
  while [ ${#tmp} -lt $1 ];
  do
    tmp=" $tmp"
  done
  echo "$tmp"
}
function lower {
  echo "$(echo $1 | tr [:upper:] [:lower:])"
}
function query_level {
  # level: on - auto - suspend
  if [ -e $1/power/level ]; then
    ARRAYPWRSTATUS[$nprod]=$(cat $devhome/power/level)
  else if [ ! -e $devhome/power/level ]; then
    ARRAYPWRSTATUS[$nprod]=NA
    fi
  fi
}
function scan_usb {
  for idVendor in $(ls /sys/bus/usb/devices/*/idVendor); do
    devhome=$(dirname $idVendor)
    devlevel=$devhome/power/level
    # if product, leo, else leo idvendor e idproduct
    if [ -e $devhome/product ]; then
      ARRAYPROD[$nprod]="$devhome"
      ARRAYPRODDESC[$nprod]="$(cat $devhome/product)"
      ARRAYMAXPWR[$nprod]="$(cat $devhome/bMaxPower)"
      query_level $devhome
      ((nprod++))
    else if [ -e $devhome/idVendor ]; then
      ARRAYPROD[$nprod]="$devhome"
      ARRAYPRODDESC[$nprod]="$(cat $devhome/idVendor):$(cat $devhome/idPro
duct)"
      ARRAYMAXPWR[$nprod]="$(cat $devhome/bMaxPower)"
      query_level $devhome
      ((nprod++))
      fi
    fi
  done
}
function list_usb {
  for element in $(seq 0 $((${#ARRAYPROD[@]} -1))); do
    echo -e "|$(padl 25 "${ARRAYPRODDESC[$element]}")|$(padl 30 "(${ARRAYPRO
D[$element]})")|$(padr 11 "[${ARRAYPWRSTATUS[$element]}]")|$(padr 7 "${ARRAYMAXP
WR[$element]}")|"
    #echo -e "${ARRAYPRODDESC[$element]}\\t(${ARRAYPROD[$element]})\\t[${ARR
AYPWRSTATUS[$element]}]\\t${ARRAYMAXPWR[$element]}"
  done
}
function toggle_usb {
  for element in $(seq 0 $((${#ARRAYPROD[@]} -1))); do
    if [[ $(lower "${ARRAYPRODDESC[$element]}") =~ $(lower "$1") ]]; then
      if [ "${ARRAYPWRSTATUS[$element]}" == "on" ] || [ "${ARRAYPWRSTATUS[
$element]}" == "auto" ] ; then
        echo "suspend" > ${ARRAYPROD[$element]}/power/level
        echo -e "${ARRAYPRODDESC[$element]} switching from [${ARRAYPWRST
ATUS[$element]}] to [suspend]"
      else
        echo "auto" > ${ARRAYPROD[$element]}/power/level Â
        echo -e "${ARRAYPRODDESC[$element]} switching from [${ARRAYPWRST
ATUS[$element]}] to [auto]"
      fi
    fi
  done
}
function verify_usb {
  for element in $(seq 0 $((${#ARRAYPROD[@]} -1))); do
    if [[ $(lower "${ARRAYPRODDESC[$element]}") =~ $(lower "$1") ]]; then
      return 0
    fi
  done
  return 1
}
function get_usb_by_name {
  for element in $(seq 0 $((${#ARRAYPROD[@]} -1))); do
    if [[ $(lower "${ARRAYPRODDESC[$element]}") =~ $(lower "$1") ]]; then
      echo -e "|$(padl 25 "${ARRAYPRODDESC[$element]}")|$(padl 30 "(${ARRA
YPROD[$element]})")|$(padr 11 "[${ARRAYPWRSTATUS[$element]}]")|$(padr 7 "${ARRAY
MAXPWR[$element]}")|"
    fi
  done
}
scan_usb
case $1 in
  -l) echo -e
    echo -e "USB Power Switching Script"
    echo -e "---------------------------------------------------------------
---------------"
    list_usb
    echo -e "---------------------------------------------------------------
---------------"
    echo -e
  ;;
  -t) if [ ! "$2" == "" ] && verify_usb $2; then
    toggle_usb $2
    else
    echo "Specify a valid USB Device: '$2' doesn't exist!!!"
    fi
  ;;
  -v) if verify_usb $2; then
    echo -e
    echo -e "USB Power Switching Script"
    echo -e "---------------------------------------------------------------
---------------"
    get_usb_by_name $2
    echo -e "---------------------------------------------------------------
---------------"
    echo -e
    echo -e "'$2' USB Device exists!!!"
    echo -e
    else
    echo -e
    echo -e "USB Power Switching Script"
    echo -e
    echo -e "'$2' USB Device doesn't exist!!!"
    echo -e
    fi
  ;;
  *) echo -e
   echo -e "USB Mouse Power Switching Script"
   echo -e "----------------------------------------------------------------
--------------"
   echo -e "-l\\tList USB Devices"
   echo -e "-t name\\ttoggle USB Device 'name' status"
   echo -e "-v name\\tverify if USB Device 'name' exists"
   echo -e
  ;;
esac