如何编写一个简单的脚本,将数字字符增加 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

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

但还有许多替代形式也可以。

相关内容