seq

seq displays numbers in sequence, similar to how some implementations of the BASIC programming language implemented a for loop, with a start and an end number, and optional stepping. seq can also take different printf-type formats, and also automatically pad output so that each item is padded up to the maximum width used. This is helpful with fixed-width columns, where instead of counting from 1 to 100, the output has to be 001 to 100.

Integer Sequences

The following script uses two seq statements. The outer loop uses seq 10 10 40 to feed the for loop. seq 10 10 40 counts from 10 to 40 in increments of 10. These subnets are 192.168.10.0/24, 192.168.20.0/24, 192.168.30.0/24, and 192.168.40.0/24, for Production, Backup, Application, and Heartbeat, respectively.

note.ai

The /24 notation means that the first 24 bits (3 × 8-bit bytes, so 192.168.10, 192.168.20, and so on) are the network part of the address. This leaves the final byte to be the host address, that is, the part of the address that identifies the particular host on that network.

The inner loop then counts from 30 to 35, as these six nodes use the same host address on each network. Their hostnames are also tied to their host address, so node030 is also known as node030-prod, node030-bkp, node030-app, and node030-hb, depending on which network is being used to access it. For the production network, the raw name node030 is also ...

Get Shell Scripting: Expert Recipes for Linux, Bash, and More now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.