12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/bin/sh
- # Global variables
- TITLE="Unmount Utility"
- COLUMNS=3 # TARGET,SOURCE,FSTYPE
- #IFS=$'\n'
- # Populate list of unmountable devices
- deviceList=($(findmnt -Do TARGET,SOURCE,FSTYPE | grep -e "sd[b-z]"))
- deviceCount=$((${#deviceList[@]} / $COLUMNS))
- # Start of program output
- echo $TITLE
- # Display list of devices that can be unmounted
- for ((device=0; device<${#deviceList[@]}; device+=COLUMNS))
- do
- printf "%4s) %-25s%-13s%-10s\n"\
- "$(($device / $COLUMNS))"\
- "${deviceList[$device]}"\
- "${deviceList[$(($device + 1))]}"\
- "${deviceList[$(($device + 2))]}"
- done
- printf "%4s) Exit\n" "x"
- # Get input from user
- read -p "Choose a menu option: " input
- # Input validation
- if [ "$input" = "X" ] || [ "$input" = "x" ]
- then
- echo "Exiting"
- exit 0
- fi
- if (( $input>=0 )) && (( $input<$deviceCount ))
- then
- echo "Unmounting: ${deviceList[$(($input * $deviceCount))]}"
- sudo umount "${deviceList[$(($input * $deviceCount))]}"
- exit 0
- else
- echo "Invalid menu choice"
- exit 1
- fi
|