Now, it may seem that these loops can do a little more than just count down numbers. We may want to read data in from a text file and process each line. The shell built-in read command that we saw earlier in this book can be used to read a file line by line. In this way, we can use a loop to process each line of a file.
To demonstrate some of these functionalities, we will use a file that contains the server addresses. These could be hostnames or IP addresses. In the following example, we will make use of the IP addresses of Google DNS servers. The following command shows the contents of the servers.txt file:
$ cat servers.txt 8.8.8.8 8.8.4.4
Using the read command in the condition of the while loop, we can loop as long as we have more lines to read from the file. We specify the input file directly after the done keyword. For each line that we read from...