如何製作一個將數字字元加 1 的簡單腳本

如何製作一個將數字字元加 1 的簡單腳本

我必須為許多 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

ETC...

這是我的腳本

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

但許多替代形式也可以發揮作用。

相關內容