* Idiom
@ 2008-07-14 21:34 Jaime Vargas
2008-07-14 21:58 ` Idiom Phil Pennock
2008-07-15 7:58 ` Idiom Stephane Chazelas
0 siblings, 2 replies; 3+ messages in thread
From: Jaime Vargas @ 2008-07-14 21:34 UTC (permalink / raw)
To: Zsh hackers list
Is there a better way to setup the ${mask_octects} array?
Without the back-ticks the expression constructs an array of one
element.
-- Jaime
#!/bin/zsh
declare -A cidr_to_mask
cidr_to_mask=(
16 255.255.0.0
17 255.255.128.0
18 255.255.192.0
19 255.255.224.0
20 255.255.240.0
21 255.255.248.0
22 255.255.252.0
23 255.255.254.0
24 255.255.255.0
25 255.255.255.128
26 255.255.255.192
27 255.255.255.224
28 255.255.255.240
29 255.255.255.248
30 255.255.255.252
31 255.255.255.254
32 255.255.255.255
)
set -A mask_octects `echo ${cidr_to_mask[22]//./ }`
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Idiom
2008-07-14 21:34 Idiom Jaime Vargas
@ 2008-07-14 21:58 ` Phil Pennock
2008-07-15 7:58 ` Idiom Stephane Chazelas
1 sibling, 0 replies; 3+ messages in thread
From: Phil Pennock @ 2008-07-14 21:58 UTC (permalink / raw)
To: Jaime Vargas; +Cc: Zsh hackers list
On 2008-07-14 at 17:34 -0400, Jaime Vargas wrote:
> Is there a better way to setup the ${mask_octects} array?
> Without the back-ticks the expression constructs an array of one
> element.
set -A mask_octets ${(s:.:)cidr_to_mask[22]}
See zshexpn(1), Parameter Expansion Flags.
> -- Jaime
Ah, the necromancer from the Kelley Armstrong books. :)
-Phil
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Idiom
2008-07-14 21:34 Idiom Jaime Vargas
2008-07-14 21:58 ` Idiom Phil Pennock
@ 2008-07-15 7:58 ` Stephane Chazelas
1 sibling, 0 replies; 3+ messages in thread
From: Stephane Chazelas @ 2008-07-15 7:58 UTC (permalink / raw)
To: Jaime Vargas; +Cc: Zsh hackers list
On Mon, Jul 14, 2008 at 05:34:05PM -0400, Jaime Vargas wrote:
> Is there a better way to setup the ${mask_octects} array?
> Without the back-ticks the expression constructs an array of one element.
>
> -- Jaime
>
> #!/bin/zsh
> declare -A cidr_to_mask
> cidr_to_mask=(
> 16 255.255.0.0
> 17 255.255.128.0
> 18 255.255.192.0
> 19 255.255.224.0
> 20 255.255.240.0
> 21 255.255.248.0
> 22 255.255.252.0
> 23 255.255.254.0
> 24 255.255.255.0
> 25 255.255.255.128
> 26 255.255.255.192
> 27 255.255.255.224
> 28 255.255.255.240
> 29 255.255.255.248
> 30 255.255.255.252
> 31 255.255.255.254
> 32 255.255.255.255
> )
>
> set -A mask_octects `echo ${cidr_to_mask[22]//./ }`
Maybe something like:
set-mask_octects() {
local mask
(( mask = (2 ** $1 - 1) << (32 - $1)))
mask_octects=()
repeat 4 {
mask_octects=($((mask & 255)) $mask_octects)
(( mask = mask >> 8 ))
}
return 0
}
--
Stéphane
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-07-15 7:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-14 21:34 Idiom Jaime Vargas
2008-07-14 21:58 ` Idiom Phil Pennock
2008-07-15 7:58 ` Idiom Stephane Chazelas
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).