Utilizzo di due variabili in un ciclo FOR in bash

From RVM Wiki
Revision as of 15:26, 14 January 2010 by Gabriele.vivinetto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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

Riferimenti