[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: A few questions about scripting for Iptables.



On 2004-05-20 Kevin D. White wrote:
> Ok, so I would like to start scripting and I would really like my
> script to be like Valerio's (OBC) script but there are a few things I
> don't understand and I was wondering if someone can help me out.
> 
> Here's what I am talking about:
>  
> # ip for the external interface (assuming EXT_IF is the external)
> EXT_IP=`ifconfig $EXT_IF | grep "addr:" | cut -d: -f 2 | cut -d\  -f1`
> 
> ???? What is stored in EXT_IP?  why the single '' ? Is there a
> declaration of EXT_IP somewhere?

Those are not single quotes but back-ticks. A command included in back-
ticks is executed and its output is returned. In the above line, the
command

  ifconfig $EXT_IF | grep "addr:" | cut -d: -f 2 | cut -d\  -f1

will be executed and the result (the IP address) will be returned and
assigned to the variable EXT_IP.

> # set the network address
> INT_NET="$INT_IP/$INT_MASK"
> 
> ???? What is taking place here?  What significance does '/' have?

The value of the variable INT_IP (IP address) followed by a single slash
followed by the value of the variable INT_MASK (netmask) is assigned to
the variable INT_NET.

> #setup the logging chain
> $FW -N LOGDROP 2>/dev/null
> 
> ???? I see that a new chain is built but I am not sure about
> '2>/dev/null',

"2>" redirects all messages going to STDERR (i.e. all error messages) to
/dev/null, so they don't show up on the display.

> How about the case "$1"?  I would like to know how that works.
> 
> # See how we were called.
> case "$1" in
[...]
> esac
> 
> ???? what is this "esac"?

"$1" is the first argument passed to the script, i.e. when calling
"./script.sh start" the value of "$1" would be "start". The word "esac"
ends the case-clause (it's "case" written backwards).

I suggest you read into the Advanced Bash-Scripting Guide [1].

[1] http://www.tldp.org/LDP/abs/html/index.html

Regards
Ansgar Wiechers



Reply to: