Utilizzo di due variabili in un ciclo FOR in bash
Jump to navigation
Jump to search
Se si vogliono usare dei dati contenuti in colonne di un file di input, operare come segue.
- Creare lo script
vi mkfetcmailrc
#!/bin/bash
#
# Input file is named
# userlist
# and is in chpasswd format:
# paolo.cabella:paolo
# marco.vassallo:marco
# We want to obtain
# user "paolo.cabella@matras.it"
# pass "paolo"
# is paolo.cabella here
# user "marco.vassallo@matras.it"
# pass "marco"
# is marco.vassallo here
IFSORI=$IFS
# Read an entire line for the '$(cat userlist)' expansion
IFS=$'\n'
for LINE in $(cat userlist)
do
# split LINE with : separator
IFS=':'
set -- $LINE # Parses variable "LINE"
#+ and sets positional parameters.
# The "--" prevents nasty surprises if $planet is null or
#+ begins with a dash.
# May need to save original positional parameters,
#+ since they get overwritten.
# One way of doing this is to use an array,
# original_params=("$@")
# Now $1=paolo.cabella and $2=paolo
echo user "\"${1}@matras.it\""
echo pass "\"$2\""
echo is $1 here
echo -e "\n"
done
IFS=$IFSORI
- Renderlo eseguibile
chmod +x mkfetcmailrc
- Creare il file contenente i valori:
vi userlist
- Generare l'output
./mkfetcmailrc