I'm hoping someone can take a look at the attached scripts & give me some pointers, becuase I'm clearly doing something extremely dumb. I'm trying to run a transparent bridge for my home network, much as discussed in the FAQs & tutorials at http://www.sparkle-cc.co.uk/firewall/firewall.html & http://www.tldp.org/HOWTO/Ethernet-Bridge-netfilter-HOWTO.html I thought I'd be clever & elegant & create a new runlevel for this, so that my /etc/init.d/net.br0 script is started instead of eth0 & eth1. It's largely working very well & I've been very impressed by Gentoo's run-levels system. I initially implemented this with a very simple script in which all variables, IPs & interface names are static. This is attached as net.br0.old - if I copy this to /etc/init.d/net.br0 everything works perfectly. All I do is type `rc bridge` and all the other services shutdown before eth0 & eth1 do, then nothing happens for a moment & then my bridge device finishes initialising and up everything comes again. I then decided to be "clever" and edit a copy of the /etc/init.d/net.eth0 script, and so my new net.br0 (or net.br1 or whatever) script takes the name of it's ${IFACE} from its own filename & gets it's other parameters from /etc/config.d/net.br0 (or br1 &c). Unfortunately, for some reason my new script doesn't seem to read the gateway="br0/192.168.1.1" line from the config.d file, and I can't work out why not. If I use my dumb script the gateway is allocated correctly, but not when I try to read parameters from file. You can see where I've tried `echo "foo"` and `echo "wibble"` for debugging purposes. When I use this script as /etc/init.d/net.br0 & type `rc bridge` the "foo" & "bar" are displayed, but not the "wibble". Clearly the `if [ -n "${gateway}" ]...` line is not being returning true; yet I do not understand why, as my script seems to be just the same as the standard net.eth0 script in this respect, and my config file (also attached) seems the same. If anyone can explain what I'm doing wrong, I would be eternally grateful. Whilst I have your attention, I would also ideally like to have a list of physical interfaces to be included in the config file. I think the startup file would need a while loop to read them, as the bridge interface can bridge any number of physical interfaces, as long as there are at least 2 of them. Then the startup script needs to perform a couple of loops through, ifconfig'ing each physical interface to IP 0.0.0.0 before adding it to the bridge device using the `brtcl add ...` command. I would guess that the list of physical devices might be stored in an array, or read from a list, but I am completely inexperienced at Bash scripting, so have no idea how to implement this. I found the Advanced Bash Scripting Guide a bit too advanced for me - can anyone recommend an alternative..? Is the O'Reilly Bash in a Nutshell any good..? I usually like their books. I do hope I've explained myself clearly, Thanks for any pointers, Stroller.