Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1286 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Logiciels

  Linux RedHat 5.x : KSH93 ou PDKSH ?

 


SOus quel KSH développez vous en entreprise ?


 
25.0 %
 2 votes
1.  KSH93
 
 
12.5 %
 1 vote
2.  PDKSH
 
 
25.0 %
 2 votes
3.  bash
 
 
0.0 %
        0 vote
4.  autre
 
 
25.0 %
 2 votes
5.  hein quoi y'a plusieurs versions de KSH ??
 
 
0.0 %
        0 vote
6.  tu peux pas test ?
 
 
12.5 %
 1 vote
7.  c'est quoi KSH ?
 

Total : 11 votes (3 votes blancs)
Ce sondage est clos, vous ne pouvez plus voter
 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Linux RedHat 5.x : KSH93 ou PDKSH ?

n°1242400
audioscave​nger
Posté le 11-10-2010 à 09:20:10  profilanswer
 

RedHat 5.5 est sortit depuis un bail...
 
RedHat c'est bof : le KSH utilisé déjà on sait même pas lequel c'est. Enfin si mais faut connaître. Je ne donnerai pas ici les commandes pour connaître la version en place c'est pas le sujet.
 
En entreprise tous les scripts sont en KSH.
Il faut les réadapter parceque en fonction du KSH utilisé (KSH93 ou PDKSH) et bien le "read" pipé il fonctionne plus !
PDKSH ne prend PAS en compte le read pipé...
Mais KSH93 c'est pareil, il marche pas bien !!!! quand on fait des unset de fonction dans un shell exécuté dans l'environnement et ben on peut plus les appeler les fonctions alors que le FPATH est bien défini !!!! ET OUAIS !!!!
 
Oh c'est juste un tout petit détail hein... Personne en PDKSH ne tape jamais de lignes du style
 
cat fichier | while read variable1 variable2 ...
 
ni même
 
$(exécution) | read variable1 variable2 ...
 
Alors pourquoi s'en faire ?
Pas besoin de tout réécrire n'est ce pas ???
 
Oh ce n'est pas la faute de RedHat ni d'IBM, juste c'est la faute de personne si ni le KSH93 ni le PDKSH n'est POSIX, enfin pardon ma langue fourche ^^ ...si des fonctionnalités INDISPENSABLES disparaissent...  :fou:  
 
Comment maintenant en PDKSH on fait pour lire ligne à ligne un fichier et faire des traitements readant les colonnes ?  :pfff:  
Comment on fait en KSH93 quand on veut recharger des fonctions, grâce au FPATH ?
 
Moi un OS me fait un truc comme ça je le dégage direct !
Alors oui y'a la solution d'utiliser PDKSH (le unset de fonction on peut pas le contourner) et de sepasser du read pipé mais bon...
 
Linux RedHat j'en suis pas mais alors vraiment PAS content du tout !  
 
Alors et chez vous ? Au boulot ?
Parmis tous ceux qui utilisent RedHat (et pas un autre hein, y'a que RedHat qu'on voit en entreprise, les autres c'est des inconscients ou des PME), aviez vous remarqué ces PETITES différences par rapport au KSH classique ?  
Sinon allez vous vérifier ?
Si oui quel KSH utilisez vous ?

Message cité 2 fois
Message édité par audioscavenger le 11-10-2010 à 12:14:04
mood
Publicité
Posté le 11-10-2010 à 09:20:10  profilanswer
 

n°1242519
audioscave​nger
Posté le 11-10-2010 à 15:13:43  profilanswer
 

j'ajouterai que :
1) où sont les forum actifs sur RedHat en français ?
2) redhat a enregistré mes déclarations comme bugs
3) PDKSH n'est pas maintenu
4) sous REdHat 6 c'est Mksh qui sera introduit par défaut.
5) on peut pas test le Mksh sur RedHat 5
6) GENIAL RedHat...

n°1242557
bardiel
Debian powa !
Posté le 11-10-2010 à 17:58:47  profilanswer
 

audioscavenger a écrit :

j'ajouterai que :
1) où sont les forum actifs sur RedHat en français ?


y'en a ? [:tang]  
Au pire, il faut voir la scène Fedora, qui dispose(rait ?) d'un plus grand nombre d'adeptes.
 
Je comparerais KSH comme le powershell de Microsoft : c'est joli, mais au final on revient aux bases... du bash.
 
En entreprise je n'ai croisé qu'une seule fois RedHat : c'était pour gérer un PABX, comme quoi pour les applications critiques y'a autre chose que Debian ou SuSE :sol:


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1242608
audioscave​nger
Posté le 12-10-2010 à 07:08:05  profilanswer
 

ouais bash...
t'as trop raison, si seulement j'avais fini mes études et que j'étais décisionnaire :)

n°1242758
bardiel
Debian powa !
Posté le 12-10-2010 à 12:25:23  profilanswer
 

Justement, si tu es décisionnaire, tu choisis KSH.
Tu es exécutant, tu choisis bash :D


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1242938
[Albator]
MDK un jour, MDK toujours !
Posté le 12-10-2010 à 20:23:05  profilanswer
 

audioscavenger a écrit :


Comment maintenant en PDKSH on fait pour lire ligne à ligne un fichier et faire des traitements readant les colonnes ?  :pfff:  
 


Heu, en utilisant des redirections plutôt que des "cat pipe" qui servent à rien ?
Quand je vois la tronche des scripts que je dois maintenir au boulot, je pense que les auteurs (partis y a longtemps) sont au moins aussi fautifs que les bugs de l'outil ...
 
Cette syntaxe fonctionne très bien en KSH sous RHEL5:

Code :
  1. while read colonneA colonneB colonneC; do
  2.   blablabla
  3. done < fichier.entree


Quand au "commande | read", personnellement j'utilise plutôt un set et les "positional parameters" (pas trouvé la traduction en français).

Code :
  1. set $( command )
  2. echo "Colonne 1: $1"


J'utilise RHEL4 et RHEL5 au boulot, je me coltine du KSH (héritage d'applis historiquement sous Solaris, moi je préfère le bash, qui est le shell par défaut de toutes façons).
 
Cependant, je viens de tester d'installer PDKSH sur ma VM RHEL 5.5 à la maison.

Code :
  1. $ pdksh --login
  2. $ echo TUTU | read variable
  3. $ echo $variable
  4. (pas de réponse)


Je confirme ça ne fonctionne pas.
 
 

Code :
  1. $ cat /etc/fstab | while read ligne; do echo $ligne; done
  2. LABEL=/ / ext3 defaults 1 1
  3. tmpfs /dev/shm tmpfs defaults 0 0
  4. devpts /dev/pts devpts gid=5,mode=620 0 0
  5. sysfs /sys sysfs defaults 0 0
  6. proc /proc proc defaults 0 0
  7. LABEL=SWAP-sda2 swap swap defaults 0 0


Sur la boucle, je n'ai pas le problème que tu décris. Tu utilises quelle version toi ?
 
Pour info;

Code :
  1. $ rpm -qi pdksh
  2. Name        : pdksh                        Relocations: (not relocatable)
  3. Version     : 5.2.14                            Vendor: CentOS
  4. Release     : 36.el5                        Build Date: jeu 03 sep 2009 22:40:30 CEST
  5. Install Date: mar 12 oct 2010 20:25:48 CEST      Build Host: builder10.centos.org
  6. Group       : System Environment/Shells     Source RPM: pdksh-5.2.14-36.el5.src.rpm
  7. Size        : 386930                           License: Public Domain
  8. Signature   : DSA/SHA1, jeu 01 oct 2009 02:42:20 CEST, Key ID a8a447dce8562897
  9. URL         : http://www.cs.mun.ca/~michael/pdksh/
  10. Summary     : A public domain shell implementing ksh-88
  11. Description :
  12. The pdksh package contains public domain implementation of ksh-88.
  13. The ksh shell is a command interpreter intended for both interactive
  14. and shell script use. Ksh's command language is a superset of the sh
  15. shell language.
  16. Pdksh is unmaintained since 1998 and is obsoleted by ksh package.


Message édité par [Albator] le 12-10-2010 à 20:28:51
n°1242939
[Albator]
MDK un jour, MDK toujours !
Posté le 12-10-2010 à 20:37:24  profilanswer
 

audioscavenger a écrit :


Mais KSH93 c'est pareil, il marche pas bien !!!! quand on fait des unset de fonction dans un shell exécuté dans l'environnement et ben on peut plus les appeler les fonctions alors que le FPATH est bien défini !!!! ET OUAIS !!!!


Et maintenant un test en KSH93, toujours sous RHEL5.5 ...
 

Code :
  1. $ cat mafonc
  2. mafonc() {
  3.         echo "OK mafonc"
  4. }
  5. $ cat monscript
  6. #!/bin/ksh93
  7. FPATH=$PWD
  8. mafonc
  9. unset mafonc
  10. mafonc
  11. $ ./monscript
  12. OK mafonc
  13. OK mafonc


Ou alors y a un truc que j'ai pas bien saisi ??

Code :
  1. $ rpm -qi ksh
  2. Name        : ksh                          Relocations: (not relocatable)
  3. Version     : 20100202                          Vendor: CentOS
  4. Release     : 1.el5_5.1                     Build Date: sam 11 sep 2010 15:09:10 CEST
  5. Install Date: mar 12 oct 2010 20:18:54 CEST      Build Host: builder10.centos.org
  6. Group       : Applications/Shells           Source RPM: ksh-20100202-1.el5_5.1.src.rpm
  7. Size        : 3267867                          License: Common Public License Version 1.0
  8. Signature   : DSA/SHA1, dim 12 sep 2010 17:32:18 CEST, Key ID a8a447dce8562897
  9. URL         : http://www.kornshell.com/
  10. Summary     : Le shell ATT Korn original
  11. Description :
  12. KSH-93 est la version la plus récente de KornShell par David Korn des
  13. Laboratoires AT&T Bell.
  14. KornShell est un language de programmation shell, qui est compatible
  15. de manière ascendante avec "sh" (Bourne Shell).

n°1242982
audioscave​nger
Posté le 13-10-2010 à 08:11:18  profilanswer
 

faut faire unset -f mafonc
 
unset mafonc fait un unset de la variable mafonc ce qui est différent ^^
 
bon depuis j'ai trouvé une solution qui semble marcher, faut faire pour chaque fonction des répertoires contenus dans le FPATH un chargement dans l'environnement, dans le script chargé dans l'environnement, et ne pas faire d'unset -f avant.
 
. ./script.ksh
 
et dans script.ksh :
 
ceci ne marche PAS :

Code :
  1. # récupération des fonctions en mémoire : AIX
  2. _functions=$(typeset -f|egrep "^function "|cut -f2 -d" " )
  3. # récupération des fonctions en mémoire : SunOS / Linux
  4. _functions=$(typeset -f|egrep "[a-Z]*\(\)|^function"|cut -f1 -d\(|cut -f2 -d" " )
  5. # nettoyage des fonctions
  6. for _function in $_functions; do unset -f $_function;done
  7. # chargement forcé des nouvelles fonctions
  8. for _function in $(ls $FPATH); do . $FPATH/$_function;done
  9. # appel a une des fonctions du répertoire $FPATH : KO
  10. mafonc
  11. -ksh: .[48]: mafonc: not found [No such file or directory]


 
ceci marche :

Code :
  1. # chargement forcé des nouvelles fonctions
  2. for _function in $(ls $FPATH); do . $FPATH/$_function;done
  3. # appel a une des fonctions du répertoire $FPATH : OK
  4. mafonc


 
pour tous les scripts appelés en dehors du script.ksh chargé dans l'environnement, les appels aux fonctions marchent bien même avec un unset -f avant. C'est quand on charge le script.ksh dans l'environnement et qu'on fait appel aux fonctions unsettées dadans que ça couille.


Message édité par audioscavenger le 13-10-2010 à 08:26:10

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Logiciels

  Linux RedHat 5.x : KSH93 ou PDKSH ?

 

Sujets relatifs
Linux Mandriva : Code de sécuritéLinux qui plante au boot à cause de periph' USB
Besoin d'aide pour installation Linux UbuntuPuis-je installer Windows APRES Linux ?
Linux - notification d'insertion disqueProblème Driver Linux
Outils Linux : Que font RRDTools - MRTG ?Ajouter d'autres sources fichiers d'authentification sur Linux
Intégration de check avant un shutdown sur linux[FreeMi] logiciel qui relie facilement votre Linux à votre Freebox
Plus de sujets relatifs à : Linux RedHat 5.x : KSH93 ou PDKSH ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR