The IFS and loops
The shell has one environment variable, which is called the Internal Field Separator (IFS). This variable indicates how the words are separated on the command line. The IFS
variable is, normally or by default, a white space ('
'). The IFS
variable is used as a word separator (token) for the for
command. In many documents, IFS can be any one of the white space, ':', '|', ': ' or any other desired character. This will be useful while using commands such as read
, set
, for
, and so on. If we are going to change the default IFS
, then it is a good practice to store the original IFS in a variable.
Later on, when we have done our required tasks, then we can assign the original character back to IFS.
In the following script for_16.sh
, we are using ":
" as the IFS character:
#/bin/bash cities=Delhi:Chennai:Bangaluru:Kolkata old_ifs="$IFS" # Saving original value of IFS IFS=":" for place in $cities do echo The name of city is $place done
Let's test the program:
$ chmod...