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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

}<br />

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

then<br />

_ein_addr[${#_ein_addr[@]}]=${_ein_tst}<br />

fi<br />

done<br />

fi<br />

done<br />

unique_lines _ein_addr _ein_addr # Scrub duplicates.<br />

e<strong>di</strong>t_exact chk_address _ein_addr # Scrub pen<strong>di</strong>ng detail.<br />

e<strong>di</strong>t_exact known_address _ein_addr # Scrub already detailed.<br />

if [ ${#_ein_addr[@]} -gt 0 ] # Anything new?<br />

then<br />

uc_address=( ${uc_address[@]} ${_ein_addr[@]} )<br />

pend_func expand_input_address ${1}<br />

_trace_log[${#_trace_log[@]}]=’# # # Added ’${#_ein_addr[@]}’ unchecked address inpu<br />

fi<br />

e<strong>di</strong>t_exact chk_name uc_name # Scrub pen<strong>di</strong>ng detail.<br />

e<strong>di</strong>t_exact known_name uc_name # Scrub already detailed.<br />

if [ ${#uc_name[@]} -gt 0 ]<br />

then<br />

chk_name=( ${chk_name[@]} ${uc_name[@]} )<br />

pend_func detail_each_name ${1}<br />

fi<br />

unset uc_name[@]<br />

return 0<br />

# For each address in uc_address:<br />

# Move address to chk_address.<br />

# Add names to uc_name.<br />

# Pend expand_input_name.<br />

# Repeat until nothing new found.<br />

# expand_input_address <br />

expand_input_address() {<br />

[ ${#uc_address[@]} -gt 0 ] || return 0<br />

local -a _eia_addr<br />

local -a _eia_name<br />

local -a _eia_new<br />

local -i _uca_cnt<br />

local -i _eia_cnt<br />

local _eia_tst<br />

unique_lines uc_address _eia_addr<br />

unset uc_address[@]<br />

e<strong>di</strong>t_exact been_there_addr _eia_addr<br />

_uca_cnt=${#_eia_addr[@]}<br />

[ ${_uca_cnt} -gt 0 ] &&<br />

been_there_addr=( ${been_there_addr[@]} ${_eia_addr[@]} )<br />

for (( _eia = 0 ; _eia < _uca_cnt ; _eia++ ))<br />

do<br />

if short_rev ${_eia_addr[${_eia}]} _eia_new<br />

then<br />

for (( _eia_cnt = 0 ; _eia_cnt < ${#_eia_new[@]} ; _eia_cnt++ ))<br />

do<br />

691

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

Saved successfully!

Ooh no, something went wrong!