Перебрать список адресов IPv6 в сценарии Bash для цикла

В сценарии Bash я перебираю список адресов IPv6. Я пытаюсь создать уникальный файл на каждом уникальном устройстве IPv6. Уникальный файл для каждого Устройства имеет адрес IPv6 в имени файла.

К сожалению, SSH/SCP пытаются разрешить что-то в имени файла и выдают эту ошибку:

«ssh: не удалось разрешить имя хоста file_2001: имя или служба неизвестны»

Как я могу подавить это неожиданное разрешение? или есть возможность убежать от чего-то здесь?

#!/bin/bash

DEVICES="\
2001:db8::3e81:d8ff:feef:4982 \
"

do_copy_xml_file()
{
    if [ -e $XML_FILE ]; then
        for X in ${DEVICES} ; do
            echo "copy file_${X}.xml to ${X}:/data/file.sxml"
            sshpass scp -o stricthostkeychecking=yes file_"${X}".xml root@\[${X}\]:/file.xml
        done
    else
        echo $XML_FILE does not exist
    fi
}

do_copy_xml_file

person Oliver G.    schedule 19.12.2013    source источник
comment
askubuntu.com/a/14411/95973   -  person slayedbylucifer    schedule 19.12.2013


Ответы (1)


Попробуйте использовать

file_"${X//:/_}".xml

чтобы заменить все : на _.

Если ваши файлы уже названы таким образом и это не должно измениться,

file_"${X//:/\\:}".xml

также можно использовать. Но я не уверен, правильно ли scp распознает это.

Кроме того, справочная страница scp содержит

Имена файлов могут содержать спецификацию пользователя и хоста, чтобы указать, что файл должен быть скопирован на/с этого хоста. Имена локальных файлов можно сделать явными, используя абсолютные или относительные пути, чтобы избежать обработки scp имен файлов, содержащих ':', как спецификаторов хоста. Копии между двумя удаленными хостами также разрешены.

Так что простое использование ./file_"${X}".xml тоже должно работать.

person glglgl    schedule 19.12.2013
comment
Замена на _ у меня работает. Второй подход был бы лучше, но он не работает. Я получил ошибку ssh: не удалось разрешить имя хоста file_2001\\: имя или служба не известны - person Oliver G.; 19.12.2013
comment
@Оливер Г. Я только что нашел кое-что потенциально полезное на странице руководства scp. - person glglgl; 19.12.2013
comment
Спасибо, что ./file_${X}.xml помог! - person Oliver G.; 19.12.2013