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.

}<br />

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

local IFS=${NO_WSP}<br />

set -f<br />

eval _ebg_Excludes=\( \$\{$1\[@\]\} \)<br />

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

local _ebg_len=${#_ebg_Target[@]}<br />

local _ebg_cnt=${#_ebg_Excludes[@]}<br />

[ ${_ebg_len} -ne 0 ] || return 0<br />

[ ${_ebg_cnt} -ne 0 ] || return 0<br />

for (( x = 0; x < ${_ebg_cnt} ; x++ ))<br />

do<br />

_ebg_x=${_ebg_Excludes[$x]}<br />

for (( n = 0 ; n < ${_ebg_len} ; n++ ))<br />

do<br />

[ $# -eq 3 ] && _ebg_x=${_ebg_x}’*’ # Do prefix e<strong>di</strong>t<br />

if [ ${_ebg_Target[$n]:=} ] #+ if defined & set.<br />

then<br />

_ebg_t=${_ebg_Target[$n]/#${_ebg_x}/}<br />

[ ${#_ebg_t} -eq 0 ] && unset _ebg_Target[$n]<br />

fi<br />

done<br />

done<br />

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

set +f<br />

return 0<br />

# This function described in unique_lines.bash.<br />

# unique_lines <br />

unique_lines() {<br />

[ $# -eq 2 ] || return 1<br />

local -a _ul_in<br />

local -a _ul_out<br />

local -i _ul_cnt<br />

local -i _ul_pos<br />

local _ul_tmp<br />

local IFS=${NO_WSP}<br />

set -f<br />

eval _ul_in=\( \$\{$1\[@\]\} \)<br />

_ul_cnt=${#_ul_in[@]}<br />

for (( _ul_pos = 0 ; _ul_pos < ${_ul_cnt} ; _ul_pos++ ))<br />

do<br />

if [ ${_ul_in[${_ul_pos}]:=} ] # If defined & not empty<br />

then<br />

_ul_tmp=${_ul_in[${_ul_pos}]}<br />

_ul_out[${#_ul_out[@]}]=${_ul_tmp}<br />

for (( zap = _ul_pos ; zap < ${_ul_cnt} ; zap++ ))<br />

do<br />

[ ${_ul_in[${zap}]:=} ] &&<br />

[ ’x’${_ul_in[${zap}]} == ’x’${_ul_tmp} ] &&<br />

unset _ul_in[${zap}]<br />

done<br />

fi<br />

done<br />

676

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

Saved successfully!

Ooh no, something went wrong!