[BASH] 3 petites questions
styvea
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
styvea Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
styvea Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
voici mon problème :
J'aimerai faire un miniscript permettant de placer quelques variables d'environnement, puis d'effectuer quelques commandes GCC.
J'ai donc 3 petites questions.
la première est :
Est il mieux de faire mes commandes gcc directement telles quelles dans le script ? ou de faire un makefile et de l'appeler à partir de mon script?
deuxième question :
Voici à quoi ressemble la partie concernant les variables à placer :
Donc rien de bien transcendant..hélas lorsque je lance mon script, les export ne sont pas pris en compte.. cela est-il normal? je suis à chaque fois obligé de les lancer à la main.
Et enfin :
toujours concernant mes exports, lorsque je configure mon LD_LIBRARY_PATH à :
cela ne marche pas, je suis obligé de mettre le chemin en dur pour que mon code fonctionne.. cela est-il normal? car ça me dérange un peu beaucoup..
Merci à ceux qui pourront m'aider !
voici mon problème :
J'aimerai faire un miniscript permettant de placer quelques variables d'environnement, puis d'effectuer quelques commandes GCC.
J'ai donc 3 petites questions.
la première est :
Est il mieux de faire mes commandes gcc directement telles quelles dans le script ? ou de faire un makefile et de l'appeler à partir de mon script?
deuxième question :
Voici à quoi ressemble la partie concernant les variables à placer :
#!/bin/bash #set -x # env export PKG_CONFIG_PATH=/home/styve/Project/ export LD_LIBRARY_PATH=/home/styve/Project/lib gcc xxx... gcc xxx...
Donc rien de bien transcendant..hélas lorsque je lance mon script, les export ne sont pas pris en compte.. cela est-il normal? je suis à chaque fois obligé de les lancer à la main.
Et enfin :
toujours concernant mes exports, lorsque je configure mon LD_LIBRARY_PATH à :
LD_LIBRARY_PATH=:/usr/local/lib:~/Project/lib/
cela ne marche pas, je suis obligé de mettre le chemin en dur pour que mon code fonctionne.. cela est-il normal? car ça me dérange un peu beaucoup..
Merci à ceux qui pourront m'aider !
A voir également:
- [BASH] 3 petites questions
- Ai suite 3 - Télécharger - Optimisation
- Marketplace petites annonces - Guide
- Picasa 3 - Télécharger - Albums photo
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Bingo bash - Télécharger - Divers Jeux
3 réponses
salut.
Je pense qu'un makefile c'est mieux, ça évite de tout recompiler, ce qui est appréciable si le projet est gros.
les export ne sont pas pris en compte.. cela est-il normal? je suis à chaque fois obligé de les lancer à la main je ne comprend pas bien cette phrase, détail un peu.
Pareil pour ta dernière question. Donne un exemple.
Je pense qu'un makefile c'est mieux, ça évite de tout recompiler, ce qui est appréciable si le projet est gros.
les export ne sont pas pris en compte.. cela est-il normal? je suis à chaque fois obligé de les lancer à la main je ne comprend pas bien cette phrase, détail un peu.
Pareil pour ta dernière question. Donne un exemple.
Merci de ta réponse Snipeur :)
Pour ce qui est des export, en fait lorsque je fais un script avec :
export LD_LIBRARY_PATH=/home/styve/Project/lib
echo $LD_LIBRARY_PATH
celà m'affiche :
/home/styve/Project/lib
Mais lorsqu'ensuite dans mon terminal je fais "env", j'obtiens :
LD_LIBRARY_PATH=:/usr/local/lib:~/Project/lib/
En gros mon script n'a pas été pris en compte.. je ne sais pas si c'est plus clair :s
Pour ma dernière question, en fait j'ai mon programme.
Lorsque mon LD_LIBRARY_PATH (utile à mon programme) est configuré comme :
:/usr/local/lib:~/Project/lib/
cela ne marche pas.
Je suis obligé de mettre :
/home/styve/Project/lib
est-ce normal? le LD_LIBRARY_PATH ne peut prendre qu'un seul chemin?
Pour ce qui est des export, en fait lorsque je fais un script avec :
export LD_LIBRARY_PATH=/home/styve/Project/lib
echo $LD_LIBRARY_PATH
celà m'affiche :
/home/styve/Project/lib
Mais lorsqu'ensuite dans mon terminal je fais "env", j'obtiens :
LD_LIBRARY_PATH=:/usr/local/lib:~/Project/lib/
En gros mon script n'a pas été pris en compte.. je ne sais pas si c'est plus clair :s
Pour ma dernière question, en fait j'ai mon programme.
Lorsque mon LD_LIBRARY_PATH (utile à mon programme) est configuré comme :
:/usr/local/lib:~/Project/lib/
cela ne marche pas.
Je suis obligé de mettre :
/home/styve/Project/lib
est-ce normal? le LD_LIBRARY_PATH ne peut prendre qu'un seul chemin?
Ok, c'est ce que je pensais... Il faut savoir que par défaut, les scripts s'exécute dans un "sous-shell" c'est à dire qu'un nouveau bash est lancé et qu'il traite toutes tes commandes. Donc les variables modifiées sont propres à ce sous-shell. Une solution pour conserver les variables modifier dans le script est d'utiliser "source" : $ source ./script.sh
Le LD_LIBRARY_PATH peut tout à fait prendre plusieurs répertoires. Là je ne sais pas, je fait deux hypothèses : soit il n'aime pas le tilde ~, soit il n'aime pas les deux points ":" en début de chaine.
Sinon, marque nous les erreurs pour voir.
Le LD_LIBRARY_PATH peut tout à fait prendre plusieurs répertoires. Là je ne sais pas, je fait deux hypothèses : soit il n'aime pas le tilde ~, soit il n'aime pas les deux points ":" en début de chaine.
Sinon, marque nous les erreurs pour voir.
Ah très bien, merci pour l'info, je ne savais absolument pas cela !
Et je connaissais encore moins la commande source.. et bien je vais utiliser cela dans ce cas :)
Pour ce qui est du LD_LIB_PATH, merci beaucoup !!
En enlevant les : et le ~ et en remplaçant par ce qu'il faut, ça marche nickel !
Merci de ton aide ;)
Et je connaissais encore moins la commande source.. et bien je vais utiliser cela dans ce cas :)
Pour ce qui est du LD_LIB_PATH, merci beaucoup !!
En enlevant les : et le ~ et en remplaçant par ce qu'il faut, ça marche nickel !
Merci de ton aide ;)