11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Appen<strong>di</strong>ce A. Script aggiuntivi<br />

local -i _lr_rc<br />

local -i _lr_cnt<br />

local _lr_dns<br />

_lr_dns=${1}’.in-addr.arpa.’<br />

IFS=${NO_WSP}<br />

echo -n ’:’<br />

# echo ’lrev: ’${1}<br />

_lr_reply=( $(<br />

<strong>di</strong>g +noall +nofail +answer +authority +ad<strong>di</strong>tional \<br />

${_lr_dns} -t soa ${_lr_dns} -t any 2>/dev/null) )<br />

_lr_rc=$?<br />

if [ ${_lr_rc} -ne 0 ]<br />

then<br />

_trace_log[${#_trace_log[@]}]=’# # # Delegation lookup error ’${_lr_rc}’ on ’${1}’ #<br />

# [ ${_lr_rc} -ne 9 ] && pend_drop<br />

return ${_lr_rc}<br />

else<br />

# Some versions of ’<strong>di</strong>g’ return warnings on stdout.<br />

_lr_cnt=${#_lr_reply[@]}<br />

for (( _lr = 0 ; _lr < ${_lr_cnt} ; _lr++ ))<br />

do<br />

[ ’x’${_lr_reply[${_lr}]:0:2} == ’x;;’ ] &&<br />

unset _lr_reply[${_lr}]<br />

done<br />

eval $2=\( \$\{_lr_reply\[@\]\} \)<br />

fi<br />

return 0<br />

}<br />

# # # Application specific functions # # #<br />

# Mung a possible name; suppresses root and TLDs.<br />

# name_fixup <br />

name_fixup(){<br />

local -a _nf_tmp<br />

local -i _nf_end<br />

local _nf_str<br />

local IFS<br />

_nf_str=$(to_lower ${1})<br />

_nf_str=$(to_dot ${_nf_str})<br />

_nf_end=${#_nf_str}-1<br />

[ ${_nf_str:${_nf_end}} != ’.’ ] &&<br />

_nf_str=${_nf_str}’.’<br />

IFS=${ADR_IFS}<br />

_nf_tmp=( ${_nf_str} )<br />

IFS=${WSP_IFS}<br />

_nf_end=${#_nf_tmp[@]}<br />

case ${_nf_end} in<br />

0) # No dots, only dots.<br />

echo<br />

return 1<br />

;;<br />

1) # Only a TLD.<br />

688

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!