2010-10-27 11 views
1

Nous avons peu d'exécutable nécessitant un paramètre d'environnement. Nous manuellement ces scripts en cours d'exécution avant d'exécuter le fichier exécutableProblème de script Shell pour définir mon environnement

Comme

$ . setenv.ksh 

Nous devons inclure ces derniers dans un appel script pour éviter le travail manuel. Nous écrit un script sh comme

#!/bin/sh 

. setenv.ksh 

./abc & 

encore les environnements ne sont pas mise en cette session. Je pense que le ". setenv.ksh "fonctionne avec une fourchette et ne définit pas l'environnement.

S'il vous plaît moi pour résoudre ce problème. Quelle commande nous utilisons pour exécuter le setenv.ksh, cela fonctionnera bien.

Merci

+1

Pourriez-vous poster le contenu de 'setenv.ksh', ou au moins une partie de celui-ci qui montre le problème? Et essayez de démontrer le problème, par ex. remplacer './abc' par' env | grep foo' où 'foo' est une variable qui devrait être définie par' setenv.ksh' mais ne l'est pas. – Gilles

Répondre

1

Je remarque le script de l'environnement est appelé setenv.ksh mais vous essayez de l'exécuter à partir de /bin/sh. Peut-être que votre système a un shell autre que ksh comme /bin/sh et qu'il porte une erreur sur le setenv.ksh. Essayez de changer la ligne shebang à #!/bin/ksh (ou quel que soit le chemin vers ksh sur votre système).

1

En setenv.ksh, vous devez exporter toutes les variables d'environnement que vous définissez afin que tous les sous-shell héritera des valeurs:

export MYENV=myValue 
+0

Setenv.ksh est le fichier tiers. Nous ne pouvons pas l'éditer sinon rencontrer des problèmes sur le système installé. – CrazyC

+0

Setenv.ksh faire l'exportation .. – CrazyC