我可以在 bash 中设置特定数字而不是序列吗?

Can I set specific numbers in bash instead of a sequence?

我目前正尝试在 bash 中制作一个使用某些特定数字的脚本。 它用于不同的程序,但作为示例,我将使用这个基本的 ping 脚本。

在此示例中,脚本将 ping 192.168.1.215、216 等,最多 225

for i in `seq 215 225`; do ping -c 1 -W 1 192.168.1.$i ; done

我的问题是 - 有没有办法将变量(在本例中为 'i')设置为特定的数字列表,而不是范围?

例如,让它尝试 215、217 和 220,特别是 - 不尝试中间的任何数字?

for i in 215 217 220; do ping -c 1 -W 1 192.168.1.$i; done

只需列出您要测试的号码即可。如果你想将数字传递到脚本中,那么也许:

for i in "$@"; do ping -c 1 -W 1 192.168.1.$i ; done

或者您甚至可以省略双引号(但通常双引号是可取的)。