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.

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

# dot_array <br />

dot_array() {<br />

[ $# -eq 1 ] || return 1 # Single argument required.<br />

local -a _da_input<br />

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

local IFS=${DOT_IFS}<br />

local _da_output=${_da_input[@]}<br />

IFS=${WSP_IFS}<br />

echo ${_da_output}<br />

return 0<br />

}<br />

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

# file_to_array <br />

file_to_array() {<br />

[ $# -eq 2 ] || return 1 # Two arguments required.<br />

local IFS=${NO_WSP}<br />

local -a _fta_tmp_<br />

_fta_tmp_=( $(cat $1) )<br />

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

return 0<br />

}<br />

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

# Columnized print of an array of multi-field strings.<br />

# col_print <br />

col_print() {<br />

[ $# -gt 2 ] || return 0<br />

local -a _cp_inp<br />

local -a _cp_spc<br />

local -a _cp_line<br />

local _cp_min<br />

local _cp_mcnt<br />

local _cp_pos<br />

local _cp_cnt<br />

local _cp_tab<br />

local -i _cp<br />

local -i _cpf<br />

local _cp_fld<br />

# WARNING: FOLLOWING LINE NOT BLANK -- IT IS QUOTED SPACES.<br />

local _cp_max=’ ’<br />

set -f<br />

local IFS=${NO_WSP}<br />

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

[ ${#_cp_inp[@]} -gt 0 ] || return 0 # Empty is easy.<br />

_cp_mcnt=$2<br />

_cp_min=${_cp_max:1:${_cp_mcnt}}<br />

shift<br />

shift<br />

_cp_cnt=$#<br />

for (( _cp = 0 ; _cp < _cp_cnt ; _cp++ ))<br />

do<br />

679

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

Saved successfully!

Ooh no, something went wrong!