Добрый день. пишу скрипт для старта виртуальной машины. нужно перед стартом добавить в виртуалку 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
а есть более правильный вариант работать со строками.