#!/bin/bash USERNAME="$1" # Provided by service file if [[ $EUID -ne 0 ]]; then echo "This script must be run as root." exit 1 fi if [ -z "$1" ]; then echo "No arguments were supplied." exit 1 fi function doTheThang { # Wait for USB device to initialize sleep 1 # TTY is empty if no serial device is detected TTY=$(setserial -g /dev/ttyUSB[0-9] | awk -F"," '{print $1}') if [ ! -z "$TTY" ]; then #configure wine to use serial device echo -e "\e[1;32mUsing serial device: $TTY\e[0m" ln -sfn $TTY /home/$USERNAME/.wine/dosdevices/com1 && chown $USERNAME /home/$USERNAME/.wine/dosdevices/com1 && ls -l /home/$USERNAME/.wine/dosdevices/ | grep $TTY else echo -e "\e[1;31mNo serial device\e[0m" fi } doTheThang LSUSB=$(lsusb) while : do #look for usb if [ "$LSUSB" != "$(lsusb)" ]; then LSUSB=$(lsusb) echo "=======USB Change detected=======" doTheThang #usb found, run function fi sleep 1 done