Problème d'incompatibilité dans un script avec read, IFS et rsync
Bonjour,
dans un script j'ai besoin de lire un fichier et j'utilise donc
Code:
1 2 3 4
| cat "$fichier_ini" | while read ligne
do
instructions...
done |
qui fonctionne très bien sauf que le "read" de la première ligne m'interdit de rajouter des read -r x temporaires par ci par là dans le script, pour examiner des trucs et des machins par exemple ; le script ne s'y arrête plus :aie:
Qu'à cela ne tienne, je vais donc lire mon fichier avec
Code:
1 2 3 4 5 6 7
| old_IFS=$IFS
IFS=$'\n'
for ligne in $(cat "$fichier_ini")
do
instructions...
done
IFS=$old_IFS |
et je récupère la possibilité de mettre mes "read" temporaires.
Le drame maintenant, c'est que ma commande rsync plus loin ne fonctionne plus... Elle est appelée comme ça :
Code:
1 2
| rsync_cmd='rsync -vrlpEogthq --delete'
$rsync_cmd "$src" "$dst" |
et je gagne
Citation:
rsync -vrlpEogthq --delete : commande introuvable
.
Il me suffit de rebasculer la lecture du fichier en mode while read pour retrouver un rsync fonctionnel, mais je perds mes "pauses" dans le script :(
Une idée pour avoir le beurre et l'argent du beurre ?
Merci par avance