|
||
Lesson 5
Objective
|
Using embedded execution in a for loop
Embed a command within for loop. |
|
|
Embedded execution is commonly used in conjunction with the
for loop to cycle through the output of a command or to cycle through the lines of a file. Place the embedded command in
place of the list of values used by the for loop. Assume you have a file called firstname:
$ cat firstname Harry Fred Sally
To cycle through the contents of this file, use an embedded cat command in a for loop:
$ for name in `cat firstname` > do > echo $name is your name > done Harry is your name Fred is your name Sally is your name |
||
| Carriage returns
When embedded execution output is a list of values used in a for loop, the shell divides this output by spaces and by carriage
returns. Sometimes, youll want to divide the output by carriage return only. By changing the value of the environment variable IFS, you can change this behavior of the for loop.
The for loop uses the value of IFS to divide the command output that it uses as values. IFS defaults to spaces, tabs, and carriage
returns. Change this value to carriage returns only by setting IFS to the value control-M. This represents a carriage return.
Let's look at a Insert Carriage Return illustrating this. Here's an example where each line is used as one value: $ IFS=^M $ for name in `cat fullnames` > do > echo $name is your name > done Harry Smith Fred Brown Sally Green Doris Jones Martha Jackson is your name |
||
|
|
||