숫자 문자를 1씩 증가시키는 간단한 스크립트를 만드는 방법

숫자 문자를 1씩 증가시키는 간단한 스크립트를 만드는 방법

많은 VLAN에 대해 단일 명령을 추가해야 하는데 어떻게든 간단한 텍스트 파일을 생성할 수 있는지 궁금합니다. 그런 다음 텍스트 파일을 네트워크 스위치에 붙여넣기만 하면 필요한 줄이 추가됩니다.

기본적으로 이 단일 명령은 다음과 같습니다.

ip dhcp-relay 10.32.150.129 10.32.50.1 enable

.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

그러나 많은 대체 형식도 작동할 수 있습니다.

관련 정보