Мне нужно добавить одну команду для МНОГИХ vlan, и интересно, могу ли я как-то сгенерировать простой текстовый файл? Затем я могу просто вставить текстовый файл в сетевой коммутатор, и он добавит необходимые строки.
По сути, это одна команда:
ip dhcp-relay 10.32.150.129 10.32.50.1 enable
необходимо будет выполнять последовательно, увеличивая с 0,50 на 1.
Итак, это будет примерно так: .50, .51, .52, .53...
поэтому он сгенерирует файл вроде:
ip dhcp-relay 10.32.150.129 10.32.50.1 enable
ip dhcp-relay 10.32.151.129 10.32.51.1 enable
ip dhcp-relay 10.32.152.129 10.32.52.1 enable
и т. д...
вот мой сценарий
#!/bin/bash
if xy=50
echo "ip dhcp-relay 10.32.150.129 10.32.50.1 enable" >> pastethisinswitch.txt
echo "ip dhcp-relay 10.32.1xy.129 10.32.xy.1 enable" >> pastethisinswitch.txt
xy+1
until xy=99
done
решение1
Это действительно просто, как вы описываете:
for k in {50..99}; do echo ip dhcp-relay 10.32.1$k.129 10.32.$k.1 enable; done > pastethisinswitch.txt
но таким образом масштабирование будет осуществляться только до 99.
Вы можете масштабировать его до 254 следующим образом:
for k in {50..154}; do echo ip dhcp-relay 10.32.$(expr 100 + $k).129 10.32.$k.1 enable; done > pastethisinswitch.txt
Ваша первоначальная попытка в рабочем виде будет выглядеть примерно так:
#!/bin/bash
k=50
while [ "$k" -lt "100" ];
do
echo "ip dhcp-relay 10.32.1$k.129 10.32.$k.1 enable " >> outfile
k=$((k+1))
done
но многие альтернативные формы также подойдут.