数字の文字を 1 増やす簡単なスクリプトの作り方

数字の文字を 1 増やす簡単なスクリプトの作り方

多数の VLAN に対して 1 つのコマンドを追加する必要があり、何らかの方法で単純なテキスト ファイルを生成できるかどうか疑問に思っています。その場合、テキスト ファイルをネットワーク スイッチに貼り付けるだけで、必要な行が追加されます。

基本的に、この単一のコマンドは次のようになります。

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

しかし、多くの代替形式も機能します。

関連情報