# L5. Bash Scripting. Part 2
## For
for var in list
do
commands
done
```bash=
#!/bin/bash
for var in first second third fourth fifth; do
echo The $var item
done
```
```bash=
#!/bin/bash
for file in /home/likegeeks/*
do
if [ -d "$file" ]
then
echo "$file is a directory"
elif [ -f "$file" ]
then
echo "$file is a file"
fi
done
```
```bash=
#!/bin/bash
my_file="/etc/passwd"
for var in $(cat $my_file); do
echo " $var"
done
```
#### Field separators
* Space
* Tab
* newline
```bash=
IFS=$'\n'
IFS=:
```
```bash=
#!/bin/bash
file="/etc/passwd"
IFS=$'\n'
for var in $(cat $file); do
echo " $var"
done
```
#### Nested loops
```bash=
#!/bin/bash
IFS=$'\n'
for entry in $(cat /etc/passwd)
do
echo "Values in $entry –"
IFS=:
for value in $entry
do
echo " $value"
done
done
```
---
## While
while condition; do
commands
done
```bash=
#!/bin/bash
number=10
while [ $number -gt 4 ]; do
echo $number
number=$(($number - 1))
done
```
---
## Operators
* break
* continue
#### break
```bash=
#!/bin/bash
for var1 in 1 2 3 4 5 6 7 8 9 10
do
if [ $var1 -eq 5 ]
then
break
fi
echo "Number: $var1"
done
```
```bash=
#!/bin/bash
var1=1
while [ $var1 -lt 10 ]
do
if [ $var1 -eq 5 ]
then
break
fi
echo "Iteration: $var1"
var1=$(( $var1 + 1 ))
done
```
#### continue
```bash=
#!/bin/bash
for (( var1 = 1; var1 < 15; var1++ ))
do
if [ $var1 -gt 5 ] && [ $var1 -lt 10 ]
then
continue
fi
echo "Iteration number: $var1"
done
```
---
## Redirecting the loop output
```bash=
#!/bin/bash
for (( a = 1; a < 10; a++ ))
do
echo "Number is $a"
done > myfile.txt
echo "finished."
```