Pouvez-vous modifier un script shell pendant son exécution et que les modifications affectent le script en cours d'exécution ?
Je suis curieux du cas spécifique d'un script csh que j'ai qui lance en lot un tas de versions de construction différentes et qui s'exécute toute la nuit. Si quelque chose me vient à l'esprit en cours d'opération, j'aimerais pouvoir ajouter des commandes supplémentaires ou commenter celles qui ne sont pas exécutées.
Si ce n'est pas possible, existe-t-il un mécanisme shell ou batch qui me permettrait de le faire ?
Bien sûr, j'ai essayé, mais il faudra des heures avant que je sache si cela a fonctionné ou non, et je suis curieux de ce qui se passe ou ne se passe pas en coulisse.
3 votes
J'ai vu deux résultats en modifiant le fichier de script pour un script en cours d'exécution: 1) les modifications sont ignorées comme si elle avait lu l'intégralité dans la mémoire ou 2) le script plante avec une erreur comme s'il avait lu une partie de la commande. Je ne sais pas si cela dépend de la taille du script. De toute façon, je ne le tenterais pas.
0 votes
En bref : non, sauf s'il s'agit d'un auto-référencement / appel, auquel cas le script principal serait toujours l'ancien.
0 votes
Il y a deux questions importantes ici. 1) Comment puis-je ajouter correctement et en toute sécurité des commandes à un script en cours d'exécution? 2) Qu'arrivera-t-il lorsque je modifierai un script en cours d'exécution?
7 votes
La question est de savoir si un shell exécute un script en lisant l'intégralité du fichier de script puis en l'exécutant, ou s'il lit partiellement le script au fur et à mesure de son exécution. Je ne sais pas lequel des deux c'est ; cela pourrait ne même pas être spécifié. Vous devriez éviter de dépendre de l'un ou l'autre comportement.