Salut,
Tu ne peux pas utiliser fork et waitpid dans un script sh. Ces fonctions s'utilisent dans un programme compilé, la plupart du temps en C, ou alors dans un langage de script plus puissant comme le python ou le perl.... Bref dans un langage qui a accés aux fonctions de base du système.
Tu peux faire deux choses sachant que A et B sont des scripts shell:
_ Dans B, tu appelles A au début et là forcément le reste de B s'executera après A.
_ Tu crées un script C qui appelle A puis B.
_ Ou alors tu fais un programme avec fork et waitpid qui execute ces scripts. Le père crées un fils de lui-même (fork) qui executera A. Dans le père, avec waitpid tu attends que le fils soit terminé, puis tu lances B:
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main()
{
pid_t pid_fils;
int statut;
if( (pid_fils=fork()) == 0){ //On est dans le fils
execl("/bin/bash", "/bin/bash", "./A", NULL);
}
else if(pid_fils == -1){
//Erreur
}
else{ //On est dans le parent
if(waitpid(pid_fils, &statut, 0) == -1){
//Erreur
}
else{// Le fils s'est terminé
execl("/bin/bash", "/bin/bash", "./B", NULL);
}
}
return 0;
}