As requested via a bug report, network configuration now supports bash expansion. This will make giving servers multiple IP addresses a snap. Here’s an example
config_eth0=( "192.168.0.{1..20}/24 brd +" )
gives you 20 IP addresses.
config_eth0=( "192.168.{1..20}.{1..20}/24 brd +" )
gives you 400 IP addresses. (20x20)
config_eth0=( "192.168.{1..20}.{1..20}/24 brd 192.168.{1..20}.{1..20}" )
Currently doesn’t work as expected- it tries to add 160000 IP addresses with most of them duplicates thanks to a sequence in the broadcast field. Not sure how to solve this at present- but I don’t see it as that much of a problem at this time.
The problem is that to get the first two examples working correctly, I need to replace spaces with _ (any char will do as long as it’s not space) so that expansion works just by clever use of quoting and arrays- no loops.
Here’s the current code- which accepts a string and returns an array
expand_parameters() {
local x="$( eval echo ${@// /_} )"
local-a a=( ${x} )
a=( "${a[)
a=( "${a[@](@]/#/"}")/%/"}" )
echo "${a[*]//_/ }"
}
Any ideas about how to fix it are welcome :)