Bonjour,

afin de réutiliser plusieurs morceaux de codes gérant les différents traitement de mon projet, j'ai mis en place des bibliothèques via FPATH et autoload avec ksh. J'urilise /usr/bin/ksh sur AIX 7.1.
J'ai un comportement étrange entre l'utilisation de fonctions déclarées dans le shell courant et appelées via autoload.

Un exemple sera certainement plus parlant:
Soient les 2 fonctions suivantes:
- function fa { return 2; }
- function fb { [[ $? -ne 0 ]] && echo "ERR" || echo "ok"; }
si je les déclare dans le shell, que j'appelle fa puis fb, j'ai bien le message ERR qui s'affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[user@partition - /home/user]
# function fa { return 2;}
[user@partition - /home/user]
# fa
[user@partition - /home/user]
# echo $?
2
[user@partition - /home/user]
# function fb { [[ $? -ne 0 ]] && echo "ERR" || echo "ok"; }
[user@partition - /home/user]
# fb
ok
[user@partition - /home/user]
# fa
[user@partition - /home/user]
# fb
ERR
[user@partition - /home/user]
#
en revanche, si je colle ces 2 fonctions dans des fichiers séparés portant leur nom, que je déclare le dossier contenant ces 2 fichiers dans FPATH puis que je les charge via autoload; lorsque j'appelle fa puis fb, c'est le message OK qui s'affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[user@partition - /home/user]
# echo 'function fa { return 2;}'> fa
[user@partition - /home/user]
# echo 'function fb { [[ $? -ne 0 ]] && echo "ERR" || echo "ok"; }' > fb
[user@partition - /home/user]
# export FPATH=$PWD
[user@partition - /home/user]
# autoload fa
[user@partition - /home/user]
# autoload fb
[user@partition - /home/user]
# fa
[user@partition - /home/user]
# fb
ok
[user@partition - /home/user]
#
j'aimerais que la seconde méthode m'affiche "ERR" et non "ok".
Je suis aussi preneur du pourquoi ça ne fonctionne pas.

Merci d'avance
Sébastien