Le script de test suivant a un problème. Quand j'ajoute la ligne (sleep 5 ) & dans le script, la boucle "While read" ne lit pas toutes les lignes du fichier, mais affiche uniquement la première ligne.
Mais quand je retire le ( sleep 5 ) & à partir du script, le script imprime toutes les lignes telles que définies dans le fichier.
Pourquoi le ( sleep 5 ) & provoque cela?
Et comment résoudre le problème? Je veux créer un nouveau processus (pour lequel le sleep est juste un exemple) dans la boucle while:
$ more test
#!/bin/ksh
while read -r line ; do
echo Read a line:
echo $line
( sleep 5 )&
RESULT=$!
echo Started background sleep with process id $RESULT
sleep 1
echo Slept for a second
kill $RESULT
echo Killed background sleep with process id $RESULT
done < file
echo Completed
Sous Linux, lors de l’utilisation du contenu suivant de file:
$ more file
123 aaa
234 bbb
556 ccc
...fonctionnement ./test me donne juste:
Read a line: 123 aaa Started background sleep with process id 4181 Slept for a second Killed background sleep with process id 4181 Completed
101010bouton ou indenter chaque ligne de code quatre espaces, s'il vous plaît. En outre, vous devez marquer certaines réponses comme acceptées.