2010-09-13 8 views
0

Je suis assez inexpérimenté avec des scripts shell (csh dans ce cas), mais a été invité à en éditer un. On m'a demandé d'ajouter un fichier de configuration pour simplifier l'édition de plusieurs variables spécifiques. Je pensais que c'était idiot parce que c'est un script et lire un fichier serait un peu stupide, alors je pourrais simplement créer un script différent qui définirait les variables.Csh exécuter le fichier de configuration du script, et les variables

Le script parent

#!/bin/csh 
... 
... 

./set_vars 

echo $aVar 

et mon script set_vars ressemble à quelque chose comme

#!/bin/csh 

setenv aVar "400" 
echo $aVar 

Mais Avar i snot défini dans le script parent.

ma question devient ... comment puis-je faire le script enfant définir les variables que le script parent peut utiliser, Ou est-il un meilleur moyen d'avoir un fichier de configuration où quelqu'un peut définir des variables.

Cela semble être une façon stupide de le faire, mais la meilleure façon que je peux dire qui ne marche pas besoin d'un fichier IO et a encore un fichier concis pour modifier vars dans.

Répondre

1

Vous devez exécuter le script « set_vars » dans les le contexte de son parent. Dans C-shell, vous réalisez ceci avec la commande "source":

 
#!/bin/csh 
... 
source set_vars 
... 
echo $aVar
+0

J'étais absolument certain d'avoir essayé ça, mais je l'ai encore fait avec votre suggestion et ça a marché! Donc, merci beaucoup, et je ne sais pas ce que je faisais avant. Est-il logique de simplement définir des variables comme celle-ci au lieu d'utiliser un fichier texte de configuration? –

Questions connexes