Вот схема.
echo выведет все, что находится в переменной $ipaddr
echo $ipaddr
Затем это передается по трубопроводу в следующую команду.
Cut может использоваться для разделения (т.е. разбиения на части) строки. Параметр команды cut указывает ей, где "разрезать" строку (здесь это точки, поэтому если IP-адрес имеет следующий формат: "198.51.100.0", он будет разделен на 198 51 100 и 0). Другой параметр указывает, какие части строки, которую он разрезал, он должен взять. Здесь это части 2 и 3. В примере с ip, который я привел выше, это даст 51 и 100. Последний параметр указывает, что нужно объединить выбранные части (части 2 и 3) с новым разделителем (здесь косая черта). Результатом будет 51/100.
cut --delimiter=. --fields=2-3 --output-delimiter=/
Результат всего этого (в моем примере это 51/100) сохраняется в переменной segments. Всякий раз, когда вы выполняете следующее:
somevar=`somecommand`
все, что находится между обратными знаками, выполняется. То, что оно возвращает, передается в левую часть знака равенства.
Я совершил глупую ошибку. В качестве авторизованных ключей _я использовал файл, скопированный из другой бродячей системы. Поэтому вместо использования «бродячего небезопасного открытого ключа» я попытался использовать «бродячий» открытый ключ для этой существующей системы.
Когда я использовал это https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub, все заработало, как я и ожидал.