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 />

fi<br />

local -i _top_<br />

_top_=${#_pen<strong>di</strong>ng_[@]}-1<br />

unset _pen<strong>di</strong>ng_[$_top_]<br />

# pend_func function_name [$(printf ’%q\n’ arguments)]<br />

pend_func() {<br />

local IFS=${NO_WSP}<br />

set -f<br />

_pen<strong>di</strong>ng_[${#_pen<strong>di</strong>ng_[@]}]=$@<br />

set +f<br />

}<br />

# The function which stops the release:<br />

pend_stop_mark() {<br />

_p_ctrl_=0<br />

}<br />

pend_mark() {<br />

pend_func pend_stop_mark<br />

}<br />

# Execute functions until ’pend_stop_mark’ . . .<br />

pend_release() {<br />

local -i _top_ # Declare _top_ as integer.<br />

_p_ctrl_=${#_pen<strong>di</strong>ng_[@]}<br />

while [ ${_p_ctrl_} -gt 0 ]<br />

do<br />

_top_=${#_pen<strong>di</strong>ng_[@]}-1<br />

_pend_current_=${_pen<strong>di</strong>ng_[$_top_]}<br />

unset _pen<strong>di</strong>ng_[$_top_]<br />

$_pend_hook_ # Debug only.<br />

eval $_pend_current_<br />

done<br />

}<br />

# Drop functions until ’pend_stop_mark’ . . .<br />

pend_drop() {<br />

local -i _top_<br />

local _pd_ctrl_=${#_pen<strong>di</strong>ng_[@]}<br />

while [ ${_pd_ctrl_} -gt 0 ]<br />

do<br />

_top_=$_pd_ctrl_-1<br />

if [ "${_pen<strong>di</strong>ng_[$_top_]}" == ’pend_stop_mark’ ]<br />

then<br />

unset _pen<strong>di</strong>ng_[$_top_]<br />

break<br />

else<br />

unset _pen<strong>di</strong>ng_[$_top_]<br />

_pd_ctrl_=$_top_<br />

fi<br />

done<br />

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

674

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

Saved successfully!

Ooh no, something went wrong!