Como fazer um script simples que aumenta um caractere numérico em 1

1

Eu tenho que adicionar um único comando para MANY vlans, e querendo saber se eu posso gerar um arquivo de texto simples de alguma forma? Então eu posso simplesmente colar o arquivo de texto no comutador de rede e ele adicionará as linhas necessárias.

Basicamente, este único comando:

ip dhcp-relay 10.32.150.129 10.32.50.1 enable

precisará ser executado consecutivamente, aumentando com o .50 por 1.

Então seria como .50, .51, .52, .53 ...

para gerar um arquivo como:

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

etc ...

aqui está meu script

#!/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
    
por 2legit2quit 02.03.2015 / 21:15

1 resposta

3

É muito simples como você descreve:

for k in {50..99}; do echo ip dhcp-relay 10.32.1$k.129 10.32.$k.1 enable; done > pastethisinswitch.txt

mas só aumentará para 99 dessa maneira.

Você pode dimensionar até 254 da seguinte forma:

for k in {50..154}; do echo ip dhcp-relay 10.32.$(expr 100 + $k).129 10.32.$k.1 enable; done > pastethisinswitch.txt

Sua tentativa original ficaria assim na forma de trabalho:

#!/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

mas muitas formas alternativas também funcionariam.

    
por 02.03.2015 / 21:31