J'utilise le code suivant pour lancer une commande sur une autre machine:Obtenir PID de la dernière commande Exécuter sur Autre machine
#!/bin/bash
/usr/bin/rsh -n $Host_Name "cat asdf.txt &"
Et je suis en train d'obtenir le PID de la commande cat en utilisant les éléments suivants:
/usr/bin/rsh -n $Host_Name pid="$!"
Mais quand j'echo $ pid, il est tout simplement vide. Que fais-je incorrectement? Y at-il un moyen plus facile d'obtenir le PID de la dernière commande qui a été exécutée sur une machine différente?
Merci
Je pense qu'il y a quelques problèmes (mais je peux me tromper). Premièrement, chaque invocation de rsh devrait probablement engendrer un nouveau shell à distance, ce qui signifie que $! La variable ne sera pas définie dans le nouveau shell et la variable du shell précédent sera perdue. Deuxièmement, d'après la syntaxe que vous utilisez, IIRC vous demande à votre shell local de définir pid comme $ local! avant d'exécuter la commande rsh. Vous devriez probablement faire quelque chose comme 'pid = $ (/ usr/bin/rsh -n $ nom_hôte 'echo $!')', Mais rappelez-vous que cela retournera également vide s'il génère une nouvelle instance shell distante. –