Dans mon projet, un certain nombre de chemins vers divers répertoires, fichiers et autres composants du système sont stockés sous la forme #define
dans un filenames.h
, un fichier inclus par tous ceux qui en ont besoin. Cela fonctionne bien pour tous les binaires différents générés par la compilation, mais le projet inclut également quelques scripts shell qui utilisent les mêmes chemins. Actuellement, cela signifie que comme un chemin change, tout ce que j'ai à faire est d'éditer filenames.h
et recompiler pour obtenir l'ensemble des exécutables pour comprendre le nouveau chemin, mais je dois éditer chaque script de shell à la main. Donc, la question est, comment faire le #defines
en variables shell, par exemple en générant un script filenames.sh
qui serait appelé à partir d'autres scripts pour les initialiser. Ainsi, par exemple:Exporter C#defines en tant que variables shell
#define TMP_PATH "/ait/tmp/"
#define SYNCTMZFILE TMP_PATH "sync_tmz"
créerait
TMP_PATH="/ait/tmp/"
SYNCTMZFILE="/ait/tmp/sync_tmz"
Bien sûr, il serait possible d'écrire un C programme qui crée (même l'imprime sur la sortie standard, puis de l'exécuter en contre-apostrophes dans la coquille) mais je préférerais une méthode plus simple et plus robuste, par exemple, écrire une demi-coquille en demi-C comme chose qui traverserait cpp
créerait la bonne sortie, ou quelque chose de semblable.
Malheureusement, il ne fait pas un très bon travail d'instructions composées comme dans le second #define. –
Ma réponse éditée devrait fonctionner mieux. – mouviciel