2010-06-14 5 views

Répondre

6

Dépend de la coque. En bash, vous pouvez utiliser:

export myvar=xyz 

qui la variable et le rendre disponible à d'autres programmes.

Si vous voulez le définir pour une invocation d'un programme, vous pouvez utiliser:

myvar=xyz ./myprog 

Cela l'aura défini pour le processus myprog mais pas après sa sortie.

1

Voir les fonctions setenv (3) et getenv (3).

12

Vous pouvez dire quel shell vous exécutez par ps -o comm= -p $$ - Je pense que c'est plus ou moins universel. Ainsi, en bash et certains coquillages similaires ...

Si vous voulez créer la variable pour une course spécifique, vous pouvez le faire

MYVAR=value the_command_that_needs_myvar 

Si vous voulez créer une session shell ensemble (c.-à- . jusqu'à ce que vous vous déconnectez):

export MYVAR=value 

... et vous pouvez exécuter:

the_command_that_needs_myvar 

... autant de fois que yo Vous aimez pendant cette session, et il verra toujours MYVAR comme ayant la valeur value.

Si vous voulez qu'il soit défini pour vous-même, pour toutes vos sessions de connexion, mettez-le en ~/.profile.

Veuillez noter que les fichiers d'initialisation de bash peuvent être un très gros WTF. Selon qu'il est exécuté de manière interactive, sur un réseau, localement, ET selon qu'il est appelé sh ou bash, il lit de manière sélective une combinaison de ~/.bashrc, ~/.profile et ~/.bash_profile. Lisez la section FICHIERS de la page de manuel bash pour plus de détails. Si vous voulez qu'il soit défini pour chaque utilisateur, à chaque fois qu'il se connecte, placez-le dans le fichier /etc/profile (bien qu'il y ait aussi /etc/environment, je ne suis pas sûr de la façon dont il est largement utilisé).

Consultez aussi la fiche "How to set environment variable for everyone under my linux system?" pour plus d'informations.

(prenez garde, certains de ces conseils variera en fonction de si vous, ou d'autres utilisateurs, utilisez bash, tableau de bord, csh, ksh, etc ... mais cela devrait fonctionner pour la plupart des cas d'utilisation.)

+0

En effet, trier si utiliser/etc/environnement,/etc/profile, ~/.profile, ~/.kshrc, ~/.cshrc, ~/.bash_profile, ~/.bash_login, ~/.bashrc et tous les d'autres possibilités ne sont pas pour les faibles de cœur :-) – paxdiablo

+0

Cela me fait penser à [The UNIX Hater's Handbook] (http://www.art.net/~hopkins/Don/unix-haters/handbook.html) - certainement WTFery restes du mauvais vieux temps. J'ai ajouté un peu sur les fichiers de configuration personnels 'bash'. – detly

Questions connexes