1
Si j'ai un fichier texte appelé inventory.txt qui ressemble à ceci:Comment puis-je prendre des lignes à partir d'un fichier texte comme un argument en utilisant une boucle
america
mexico
england
Si je lance ce code, il ne fonctionne que par une fois pour america
while read line;
do
while getopts "U:D:" opt;
do
case $opt in
U)
SOURCE=$OPTARG
echo "SOURCE : $SOURCE"
SITEID=$line
echo "SITE : $SITEID " >&2
;;
D)
DEST=$OPTARG
echo "DESTINATION : $DEST" >&2
;;
esac
done
done < inventory.txt
Comment puis-je faire pour toutes les lignes dans mon fichier texte?
Votre boucle externe passe par 3 itérations. Mais la boucle interne n'est exécutée que pendant la première. –
Il semble vraiment étrange d'exécuter la boucle 'while while 'plus d'une fois, mais si vous voulez vraiment faire cela, vous pouvez simplement définir OPTIND = 1 en haut de la boucle externe. –