#!/bin/bash
echo
# Equivalent to:
while [ "$var1" != "end" ] # while test "$var1" != "end"
do
echo "Input variable #1 (end to exit) "
read var1 # Not 'read $var1' (why?).
echo "variable #1 = $var1" # Need quotes because of "#" . . .
# If input is 'end', echoes it here.
# Does not test for termination condition until top of loop.
echo
done
exit 0
[root@localhost shell]# ./ex26.sh
Input variable #1 (end to exit)
aa
variable #1 = aa
Input variable #1 (end to exit)
bb
variable #1 = bb
Input variable #1 (end to exit)
end
variable #1 = end
#!/bin/bash
var1=unset
previous=$var1
while echo "previous-variable = $previous"
echo
previous=$var1
[ "$var1" != end ] # Keeps track of what $var1 was previously.
# Four conditions on "while", but only last one controls loop.
# The *last* exit status is the one that counts.
do
echo "Input variable #1 (end to exit) "
read var1
echo "variable #1 = $var1"
done
# Try to figure out how this all works.
# It's a wee bit tricky.
exit 0
[root@localhost shell]# ./ex26a.sh previous-variable = unset
Input variable #1 (end to exit)
aa
variable #1 = aa
previous-variable = unset
Input variable #1 (end to exit)
bb
variable #1 = bb
previous-variable = aa
Input variable #1 (end to exit)
cc
variable #1 = cc
previous-variable = bb
Input variable #1 (end to exit)
end
variable #1 = end
previous-variable = cc