The IFS

By default, the IFS variable has the value of one of (space, newline, or tab).

Suppose that you have a file like the following and you want to iterate over its lines:

Hello, this is a test 
This is the second line 
And this is the last line 

Let's write the for loop that will iterate over these lines:

#!/bin/bash 
file="file1.txt" 
for var in $(cat $file) 
do 
echo " $var" 
done 

If you check the result, it's something that we don't need:

Since the first separator the shell found is the space, the shell treats every word as a field, but we need every line to be printed as a field.

Here we need to change the IFS variable to be newline instead. ...

Get Mastering Linux Shell Scripting 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.