多数の 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
しかし、多くの代替形式も機能します。