172 votes

Script Bash - Comment référencer un fichier pour des variables

Salut, je veux appeler un fichier de paramètres pour une variable, comment puis-je faire cela en bash?

Ainsi, le fichier de paramètres définira les variables (par exemple, CONFIG.FILE):

 production="liveschool_joe"
playschool="playschool_joe"
 

Et le script utilisera ces variables

 #!/bin/bash
production="/REFERENCE/TO/CONFIG.FILE"
playschool="/REFERENCE/TO/CONFIG.FILE"
sudo -u wwwrun svn up /srv/www/htdocs/$production
sudo -u wwwrun svn up /srv/www/htdocs/$playschool
 

Comment puis-je obtenir bash de faire quelque chose comme ça? Devrai-je utiliser awk / sed, etc.?

276voto

Ezra Points 3297

La réponse courte

Utiliser l' source commande.


Un exemple d'utilisation de source

Par exemple:

config.sh

#!/usr/bin/env bash
production="liveschool_joe"
playschool="playschool_joe"
echo $playschool

script.sh

#!/usr/bin/env bash
source config.sh
echo $production

Notez que la sortie d' sh ./script.sh dans cet exemple est:

~$ sh ./script.sh 
playschool_joe
liveschool_joe

C'est parce que l' source commande s'exécute le programme. Tout en config.sh est exécutée.


Une autre façon

Vous pouvez utiliser le haut- export de commandement et d'obtention et définition des "variables d'environnement" peut aussi l'accomplir.

L'exécution export et echo $ENV devrait être tout ce que vous devez savoir à propos de l'accès aux variables. Accéder aux variables d'environnement est fait de la même façon qu'une variable locale.

Pour les régler, dire:

export variable=value

sur la ligne de commande. Tous les scripts seront en mesure d'accéder à cette valeur.

24voto

artistoex Points 983

encore plus court en utilisant le point:

 #!/bin/bash
. CONFIG_FILE

sudo -u wwwrun svn up /srv/www/htdocs/$production
sudo -u wwwrun svn up /srv/www/htdocs/$playschool
 

16voto

Daniel Points 13823

Utilisez la commande source pour importer d'autres scripts:

 #!/bin/bash
source /REFERENCE/TO/CONFIG.FILE
sudo -u wwwrun svn up /srv/www/htdocs/$production
sudo -u wwwrun svn up /srv/www/htdocs/$playschool
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X