Dans un script bash, comment obtenir un PID à partir d'un programme exécuté lors de l'utilisation de la commande eval?

J'ai des commandes dans un script bash qui sont semblables à la présente:

eval "( java -classpath ./$classname ${arguments[@]} $redirection_options $file )" &
pid=$!

Cependant si je fais un ps $pid il montre le script principal processus au lieu de le processus du programme java.

Il obtient le processus correct quand je omettre l'eval, mais dans le but d'obtenir une partie de la complexité de la arguments pour fonctionner correctement, j'ai besoin de l'utiliser.

Aucune idée de comment je peux obtenir le PID du programme java lorsqu'il est exécuté au sein d'un eval commande?

source d'informationauteur Milo