J'utilise Ubuntu 11.04. J'utilise le terminal pour démarrer une session bash et je souhaite ajouter une variable d'environnement:
$r@hajt:~$ env THEVAR=/example
Mais ça ne marche pas. Il montre toutes les variables avec THEVAR étant la dernière, mais un autre appel à env ne s'affiche pas THEVAR plus- env | grep THEVAR ne renvoie rien.
De même, les scripts avec export (export THEVAR=/example) ou d'autres affectations de variables (THEVAR=/example) n'ajoutez pas la variable d'environnement.
Je sais que je fais quelque chose de mal, je sais que ça devrait être quelque chose de simple, mais je ne trouve pas quoi.
Pour définir une variable d'environnement une fois, utilisez la commande export commande dans l'invite, pas dans un script shell:
$ export THEVAR=/example
La variable sera définie pour le reste de la session shell ou jusqu'à ce qu'elle ne soit pas définie.
Pour définir une variable d'environnement à chaque fois, utilisez le export commande dans le .bashrc fichier (ou le fichier d'initialisation approprié pour votre shell).
Pour définir une variable d'environnement à partir d'un script, utilisez la commande export commande dans le script, puis source script. Si vous exécutez le script, il ne fonctionnera pas.
Pour ajouter définitivement une nouvelle variable d'environnement dans Ubuntu (testée uniquement dans la version 14.04), procédez comme suit:
Ouvrir un terminal (en appuyant sur CtrlAltT)
sudo -H gedit /etc/environment
Saisissez votre mot de passe
Modifier le fichier texte qui vient d'être ouvert: par exemple, si vous souhaitez ajouter FOO=bar, alors écrivez simplement FOO=bar dans une nouvelle ligne
Enregistrez-le
Une fois enregistré, déconnectez-vous et reconnectez-vous.
Pour que les modifications d'environnement/var persistent une fois le script terminé, vous devez utilisersource ./script.sh ou la notation abrégée pour la source,".", comme . ./script.sh
Source exécutera les commandes du script comme si vous les aviez tapées... cela change donc certains aspects du script, comme la sortie... donc, si votre script vérifie quelque chose et décide de quitter si false, par exemple, via un appel exit 0, il mettra fin à votre session de terminal / shell actuelle.
Je sais qu'il est assez tard, mais si vous souhaitez ajouter une variable d'environnement pour tous les utilisateurs (par exemple, l'utilisation de JAVA), vous pouvez procéder comme suit:
1) Ouvrir /etc/bash.bashrc en utilisant nano (vous pouvez utiliser n'importe quel éditeur, je ne préfère pas VIM car c'est le pire en matière de convivialité - rien de personnel).
2) Ajouter au fichier:
export VAR=path export PATH=$PATH:/bin3) (Mieux si vous pouvez faire rebondir la boîte) - ou ouvrez simplement une nouvelle session SSH et confirmez en utilisant la commande 'env'.
MAIS SI vous voulez que chaque utilisateur ait un paramètre séparé pour cela, vous devez apporter une modification (scriptée) à .bashrc fichier sous ~/.bashrc (ou /home/$USER/ si vous êtes nouveau sur les systèmes Linux)
Si vous faites des choses via un script, un moyen simple de définir la variable d'environnement de manière permanente est de mettre l'instruction ci-dessous dans votre script,
if [[ ! -d "$MyVar" ]]; then export MyVar="abc" echo 'export MyVar="abc"' >> ~/.bashrcfi
Si vous avez besoin d'évaluer des expressions comme pwd, vous pouvez l'utiliser, par exemple,
Si vous utilisez Ubuntu ou un système basé sur Unix, exportez les variables dans le ~/.bashrc fichier. C'est un fichier caché et vous pouvez y accéder via le terminal ou en affichant les fichiers cachés dans le système de fichiers.
Ensuite, modifiez le fichier et définissez export THEVAR=/example là, économisez et c'est fait.