Bon, la dernière fois, j'avais un souci avec le ksh d'AIX; maintenant, c'est avec celui de HP-UX :-(

Contrairement à linux, le ksh d'HP-UX semble ne pas reconnaître le bang ('!') devant une expression...

sous Linux:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
$ true
$ echo $?
0
$ ! true  
$ echo $?
1
Jusque là, tout va bien...

Sous HP-UX:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
% uname -a
HP-UX ppaleml B.11.11 U 9000/800 2323570091 unlimited-user license
$ true
$ echo $?
0
$ ! true  
ksh: !:  not found
Y a-t-il un autre moyen que de réécrire tous mes tests pour les passer sous UP-UX?

Par exemple, dois-je convertir (avec une bonne vieille macro emacs) mes tests:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if ! fgrep -q 'blabla' file ; then blabla ; fi
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if fgrep -q 'blabla' file ; [[ $? -eq 0 ]] ; then blabla ; fi
En fait, en regardant la doc de plus près, il semblerait que le bang soit plutôt destiné à nier une expression-du-test, lorsque celle-ci est entre double crochets:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if [[ ! "x$a" = "x$b" ]] ; then ... fi
même si l'écriture suivante fonctionne aussi sous linux:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if ! [[ "x$a" = "x$b" ]] ; then ... fi
Quelle est votre expérience sur ce phénomène?

Merci d'avance

)jack(