Bonjour à tous,
j'utilise pour mon travail des logiciels auxquels on a accès, la plupart du temps, en ajoutant au path les binaires du logiciel et des fois en créant des variables d'environnement dont le logiciel a besoin. Rien de bien compliqué mais évidemment, on a pas du tout envie de faire ça à la main. Du coup on met ça dans des scripts qui permettent de faire ce que je viens de dire et de lancer le logiciel. Sauf que si j’exécute mon script, et si je ne dis pas de bêtises, il s’exécute dans un sous-shell et donc si je récupère le prompt (#esperluette) je ne récupère pas mon environnement. La solution consiste donc peut-être à sourcer ce script plutôt que de l’exécuter. Sauf que si mon script est dans un dossier (cao-scripts/script-logiciel) qui n'est pas le dossier courant, même si j'ajoute cao-scripts a mon path, je ne peux pas simplement faire un
$ source script-logiciel
Au mieux je peux faire
$ source cao-scripts/script-logiciel
C'est pas compliqué mais c'est pas non plus le top de l'ergonomie.
Du coup, une solution pourrait être de faire un alias qu'on appellerait par exemple use et ce use sourcerait les scripts qui sont dans un répertoire prédéfini, par exemple (c'est du csh)
alias use 'source /cao-scripts/!*'
et donc ensuite faire
use script-logiciel
Donc on pourrait avoir l'impression ici que j'ai la solution et c'est plus ou moins vrai mais je viens surtout vous demander si vous connaissez d'autres solutions, peut-être plus élégante pour répondre à ma question.
Merci d'avance pour vos réponse.
Olivier
# Recherche récursive
Posté par Vroum . Évalué à 1. Dernière modification le 12 novembre 2018 à 13:38.
Pas vraiment une solution à préconiser mais tu peux utiliser la syntaxe
globstar
avec:source **/script-logiciel
Tu devrais quand même préfixer avec un répertoire d'entrée:
source $CAO_SCRIPTS/**/script-logiciel
[^] # Re: Recherche récursive
Posté par foobarbazz . Évalué à 1. Dernière modification le 12 novembre 2018 à 17:05.
Hum… Je propose :
PATH=$CHEMIN:$PATH script-logiciel
(perso, je fais toujours comme ça quand j'ai besoin d'une variable d’environnement pour un seul process')
ajout : je suis HS hein ?
# Un peu vague, mais bon...
Posté par liberforce (site web personnel) . Évalué à 4.
Si ces logiciels ont besoin d'un environnement à eux, mais que tu ne veux pas polluer ton shell avec leur environnement, alors fais juste un script qui sert de wrapper. Il chargera l'environnement de tes autres scripts avant de le appeller.
Si au contraire tu veux toujours avoir cet environnement dans ton shell courant, alors fais un
source cao-scripts/environnement-logiciel
dans ton$HOME/.bashrc
.Dans tous les cas, l'environnement et l'appel du programme final sont deux choses distinctes. Il faut les découpler, pour que n'importe qui puisse charger un environnement, potentiellement différent.
# Des alias ?
Posté par lolop (site web personnel) . Évalué à 1.
Qui sourceraient tes scripts de lancement…
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Des alias ?
Posté par Olivier LEMAIRE (site web personnel) . Évalué à 1.
Bonjour,
merci pour cette réponse. Je ne trouve pas vraiment ça complètement satisfaisant mais ca pourrait être un début de réponse.
OL
Les logiciels de traitement de texte sont à la rédaction ce que la 2CV est à l'automobile, une vieille voiture dont on se souvient avec nostalgie mais technologiquement dépassée
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.