Bizarre : sauf erreur de ma part, POSIX impose que le fichier soit lu au fur et à mesure. C'est une bizarerie de POSIX, les interprètes classiques plus modernes lisent et parsent tout le fichier d'un coup, c'est beaucoup plus logique. Donc a priori, ǝpɐןƃu∀ nǝıɥʇʇɐW-ǝɹɹǝıԀ, ton bash doit être dans un mode où il s'autorise des non-POSIXeries. Peut-être une variable POSIXLY_CORRECT bizarrement positionnée ou un truc qui ressemble. En tous cas moi j'ai bien le comportement où la modif en cours d'exécution est prise en compte.
Sinon, si on veut être sûr que tout le fichier est lu au démarrage, l'astuce classique est de l'encapsuler dans une paire d'accolades :
{
...
tout le script
...
}
Et là le shell est obligé d'aller jusqu'au } fermant avant de démarrer l'exécution.
Bon, tout ça de mémoire, je ne retrouve plus mes sources.
[^] # Re: Pas chez moi
Posté par Matthieu Moy (site web personnel) . En réponse au message impossible de modifier un exécutable lorsqu'il est en exécution. Évalué à 3. Dernière modification le 20 février 2019 à 17:33.
Bizarre : sauf erreur de ma part, POSIX impose que le fichier soit lu au fur et à mesure. C'est une bizarerie de POSIX, les interprètes classiques plus modernes lisent et parsent tout le fichier d'un coup, c'est beaucoup plus logique. Donc a priori, ǝpɐןƃu∀ nǝıɥʇʇɐW-ǝɹɹǝıԀ, ton bash doit être dans un mode où il s'autorise des non-POSIXeries. Peut-être une variable
POSIXLY_CORRECTbizarrement positionnée ou un truc qui ressemble. En tous cas moi j'ai bien le comportement où la modif en cours d'exécution est prise en compte.Sinon, si on veut être sûr que tout le fichier est lu au démarrage, l'astuce classique est de l'encapsuler dans une paire d'accolades :
Et là le shell est obligé d'aller jusqu'au
}fermant avant de démarrer l'exécution.Bon, tout ça de mémoire, je ne retrouve plus mes sources.