- Création d'une bibliothèque de fonctions [Programmation Korn Shell] - Shell/Batch - Programmation
Marsh Posté le 23-03-2005 à 19:28:57
IsBack a écrit : Bonjour,
|
Le cron ne sait pas où se trouve ta fonction (variable PATH de base)
Marsh Posté le 23-03-2005 à 23:02:49
Sve@r a écrit : Le cron ne sait pas où se trouve ta fonction (variable PATH de base) |
D'après ce que tu me dis il faut mettre dans le path, le chemin absolu du répertoire où se trouve mes fonctions.
Alors pourquoi dans différentes documentation sur le web il préconise de créer une variable FPATH, les alias autoload='typeset -fu', etc .... ?
Si au final il suffit d'ajouter au path une référence pour que cela marche aussi bien en manuel qu'avec la crontab. Je comprends pas trop l'intêret la variable FPATH en fait.
Marsh Posté le 24-03-2005 à 19:33:54
IsBack a écrit : D'après ce que tu me dis il faut mettre dans le path, le chemin absolu du répertoire où se trouve mes fonctions. |
Bon, déjà je connais pas trop les subtilités du Korn-Shell par rapport au Bourne Shell. Mais je suis quasiment certain (à vérifier) que quand Cron lance un script, il travaille lui en Bourne Shell et donc que ta variable FPATH (que je ne connais pas) ben il s'en fout.
Une façon de bien connaître ton environnement Cron: Tu crées un script qui affiche des trucs de ton environnement (echo $0, echo $PATH, echo $FPATH, env, etc...) et tu lances ce script depuis Cron. Tu verras mieux comment ça marche.
Autre truc: Quand Cron lance ton premier script (celui qui marche pas), il doit probablement t'envoyer le résultat par mail. Que dis ce mail ?
Marsh Posté le 23-03-2005 à 15:21:21
Bonjour,
Je programme des scripts en Korn Shell et j'utilise des fonctions que j'écris aussi en korn Shell.
Le problème est que je ne sais pas si j'ai bien mis en place le mécanisme lié aux fonctions en programmation ksh.
En fait, j'ai créé un répertoire :
Dans lequel se trouve mes fichiers de fonctions
En suite, j'ai déclarer la variable FPATH=/home/functions dans le fichier d'initialisation : .profile
En suite au sein d'un script :
Puis j'exécute ce script
tout se passe comme prévu c'est à dire qu'il valide ou non le format et l'existence de la date passée en paramètre.
Es ce que ce mécanisme est correct ?
Lorsque je lance le sctipt à la main :
Ca marche correctement.
Par contre via la crontab, ça ne marche pas.
Il n'y a une erreur sur l'appel de la fonction.
Je pense que cela vient du fait que la crontab n'utilise pas les même fichiers d'initialisation (profile, .profile, etc ....)
Quelqu'un a une idée ?
Merci.
Message édité par IsBack le 23-03-2005 à 16:01:15