LINUX.ORG.RU

bash в цикле обработать массив строк. проблема с пробелами.

 , ,


0

2

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

а есть более правильный вариант работать со строками.

★★★

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.