Manuel,
It took a while to remember, somewhere in the past I happened on a
similar problem.
..
[[ $BLFS_TOOL = "y" ]] && action
}
This doesn't cause a problem unless you enable error trapping and
then the script dies.
When BLFS_TOOL is not set bash does the comparison, it is not true and
the next command it finds is the termination of the function '}'. If you
put any command between the test and the '}' everything is fine.
This is a head scratcher if you have never seen it before.
#!/bin/sh
# A simeple test:::
set -e
V="n"
func1() {
echo "func1"
[[ ${V} = "y" ]] && func2
}
func2() {
echo "func2"
}
func1
echo "done"
exit
#----END----
1. The script prints "func1" only .. where is the "done"?
2. Turn off error trapping, set +e
script prints "func1" "done" (what you would expect)
3. Turn error trapping back on, set -e
Insert a null command, : ,before the closing } in func1
script prints "funct1" "done"
--
http://linuxfromscratch.org/mailman/listinfo/alfs-discuss
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page