Bonjour le Forum,

Débutant en bash, je souhaiterai optimiser mon premier script.

Lecture d'un fichier avec split sur ";".

Version 1.0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
while read line
do
   N_ENV=$(echo "$line" | cut -d';' -f1)
   N_APP=$(echo "$line" | cut -d';' -f2)
   N_JOB=$(echo "$line" | cut -d';' -f3)
   V_COM=$(echo "$line" | cut -d';' -f4)
 
   # Application du changement
#  ${PATHVTOM}/vtaddjob /Nom="${N_ENV}/${N_APP}/${N_JOB}" /Comm="${V_COM}"
   if [ $? -eq 0 ] ; then
      echo -e "[${VERT}OK${NORMAL}] `date +"%D %H:%M"` # $i \t ENV=${N_ENV} APP=${N_APP} JOB=${N_JOB} \t COM=${V_COM}"
   else
      echo -e " [${ROUGE}KO${NORMAL}]"
      exit 2
   fi
 
done < ${FILE_INPUT}
Ce script est fonctionnel, mais ayant lu que l'utilisation d'une boucle "while" était déconseillée, j'essaie d'extraire mes champs de cette façon:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
for item in $(cut -d";" -f1,4 $FILE_INPUT)
do
  echo $item
done
La variable item me renvoie la ligne complète.

Question: comment lire f1, f2, f3 et f4 ?

Merci par avance de vos suggestions.