Добрый день. пишу скрипт для старта виртуальной машины. нужно перед стартом добавить в виртуалку usb-устройства.
написал такой простой скрипт. все пробелы заменяю на дефисы. в противном случае, переменная i возврашает слово, вместо всей строки.
for i in $(lsusb| grep "Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem"| cut -c 1-18| sed "s% %-%g"); do
        echo $i
        BUSNUMBER=$(echo $i| cut -d "-" -f 2 )
        echo "BUSNUMBER is $BUSNUMBER"
        DEVICENUMBER=$(echo $i | cut -d "-" -f 4)
        echo "DEVICENUMBER is $DEVICENUMBER"
        FILENAME=$VMDATA/usb-$BUSNUMBER-$DEVICENUMBER.xml
        cp $VMDATA/usb-BUS-DEVICE.xml $FILENAME
        sed -i -e "s%BUSNUMBER%$BUSNUMBER%" $FILENAME
        sed -i -e "s%DEVICENUMBER%$DEVICENUMBER%" $FILENAME
        virsh attach-device asterisk $FILENAME
        rm $FILENAME
done
а есть более правильный вариант работать со строками.


