KSH / BASH (fonction Date)

Bonjour,
J’ai une application Java qui exécute un package Oracle, et dans ce package Oracle exécute un script sur le serveur.
Tout se passe relativement bien sauf que le script doit généré un fichier log, et dans ce fichier log il devrait y avoir la date sous cette forme :

date +%d.%m.%y\ %T

Quand j’exécute cette commande sous le compte Unix Oracle, j’ai bien le résultat, mais quand Oracle exécute le script la commande ne renvoie rien.
En étudiant la configuration je voie que le script est de type :

#!/bin/ksh

or mon user Oracle utilise :

SHELL=/bin/bash

Est-ce que cette différence pourrait être à l’origine du problème ?

$whereis date date: /bin/date /usr/share/man/man1/date.1.gz
Donc je pense que non. date est un binaire, pas une fonction du shell.

Montre nous le bout de script, mais j’ai le présentiment que tu as oublier les ``

On peut commencer par les choses simples, tu as pensé au PATH? Change le date en /bin/date ppeut être

Très simplement :

date=$(which date)

Mais, je peux me tromper … non ?

@fran @penguin ==> Vous avez presque raison tous les deux.
En fait quand je me loggue en tant que Oracle en faisant “su oracle” je vois bien mes $ENV et “date” fonctionne, mais … Parceque’il y a un mais, par le plus grand des hasards, l’autre jour j’ai ajouté le ‘-’ (su - oracle) (j’ai jamais bien compris la différence, ça doit être au niveau de .profil …) et alors je me suis rendu compte que je n’avais plus les mêmes variables d’environnement …
Finalement, c’était bien un problème de $ENV quand Oracle exécute une commande SHELL en directe (sans préparation de console OUTPUT) il n’a aucune $ENV donc pas de $PATH … le chien.
Du coup un p’tit /usr/bin devant date et maintenant mon log à le choix dans la date.

$ type date date est /bin/date /usr/bin? T’es sûr?