IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

astuces pour alleger un script shell


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut astuces pour alleger un script shell
    Bonjour , j'ai à créer un script shell pour mon travail sur un serveur solaris particulièrement utilisé ...

    J'aimerais savoir si vous avez des astuces pour rendre vos script plus rapide , plus efficace ?

    des commandes gourmandes a éviter , ou qui génère des temps d'accès etc ..

    merci d'avance !

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    un cas concret ici...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    un cas concret ici...
    merci , j'essaye de supprimmer les echos , comme dans cette ligne par exemple :

    c2_heure=$(echo $resultat_info | cut -d " " -f21)

    j'ai tester sans succes

    cut -c 0-41 << "$resultat_info"
    cut -c 0-41 "$resultat_info"

    je n'arrive pas rediriger le contenu de la variable $resultat_info vers la commande cut ....

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # c2_heure=$(echo $resultat_info | cut -d " " -f21)
    c2_heure=$(cut -d " " -f21 <<< "$resultat_info")
    
    #cut -c 1-41 << "$resultat_info" 
    resultat_info=${resultat_info:0:41}
    il y a de nombreux cas pour lesquels cut n'est pas indispensable en bash. Mais sur Solaris, le shell n'est peut-être pas Bash...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Citation Envoyé par N_BaH Voir le message
    Mais sur Solaris, le shell n'est peut-être pas Bash...
    Il me semble que c'est soit Sh soit Ksh, je ne sais plus ...

    @ grandju91 : fait un echo $SHELL (ou env | grep SHELL) pour le savoir .

  6. #6
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Bash existe sous Solaris, mais ce n'est effectivement pas forcement le shell utilisé.

    Il faut donc savoir quel script est utilise dans ce script (ce qui n'a pas forcement a voir avec le shell qui est utilise dans un terminal).
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # c2_heure=$(echo $resultat_info | cut -d " " -f21)
    c2_heure=$(cut -d " " -f21 <<< "$resultat_info")
    
    #cut -c 1-41 << "$resultat_info" 
    resultat_info=${resultat_info:0:41}
    il y a de nombreux cas pour lesquels cut n'est pas indispensable en bash. Mais sur Solaris, le shell n'est peut-être pas Bash...

    désoler de répondre un peu tard , je ne sais pas si le serveur utilise le bash , on peu le voir dans les variables d'environnement avec un la commande "export" je crois ?

    Je programme en shell depuis peu et j'ai toujours utiliser le ksh ,quand il était présent , le bash est t'il plus simple ?

    je vais essayer la commande resultat_info=${resultat_info:0:41} si il y a du bash

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    Citation Envoyé par ok.Idriss Voir le message
    Bonjour.



    Il me semble que c'est soit Sh soit Ksh, je ne sais plus ...

    @ grandju91 : fait un echo $SHELL (ou env | grep SHELL) pour le savoir .

    lool bin voila la réponse a ma question précédente (j'ai lu trop vite)
    merci , je teste demain !

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Bonjour,

    Bash existe sous Solaris, mais ce n'est effectivement pas forcement le shell utilisé.

    Il faut donc savoir quel script est utilise dans ce script (ce qui n'a pas forcement a voir avec le shell qui est utilise dans un terminal).
    bonsoir ! mais au fait y a un autre moyen de connaitre les shell disponible , en allant voir directement dans /bin non ?


  10. #10
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonsoir.

    Citation Envoyé par grandju91 Voir le message
    bonsoir ! mais au fait y a un autre moyen de connaitre les shell disponible , en allant voir directement dans /bin non ?
    Ouais, là c'était pour connaître le shell par défaut (de la ligne de commande), mais c'est vrai que ça n'empêche pas d'utiliser les autres shell dans un script comme l'a souligné gangsoleil ...

    Les shells (normalement) sont situés dans /bin ...

    Citation Envoyé par gangsoleil Voir le message
    Il faut donc savoir quel script est utilise dans ce script
    "savoir quel shell est utilisé dans ce script" ?

    Cordialement,
    Idriss

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    Citation Envoyé par ok.Idriss Voir le message
    Bonsoir.



    Ouais, là c'était pour connaître le shell par défaut (de la ligne de commande), mais c'est vrai que ça n'empêche pas d'utiliser les autres shell dans un script comme l'a souligné gangsoleil ...

    Les shells (normalement) sont situés dans /bin ...



    "savoir quel shell est utilisé dans ce script" ?

    Cordialement,
    Idriss
    alors resultat :

    il ya les trois shell les plus connus sur la machine , bash , sh et ksh c'est cool , j'avais forcéé le script a utilisé le ksh , mais si le bash me permet de l'alleger , je vais tester ...

    merci pour le coup de main !

  12. #12
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    ce qui fonctionnera en sh, fonctionnera en bash
    ce qui fonctionnera en bash, fonctionnera en ksh

    ce qui fonctionnera en ksh, ne fonctionnera pas forcément en bash
    ce qui fonctionnera en bash, ne fonctionnera pas forcément en sh

    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ce qui fonctionnera en sh, fonctionnera en bash
    ce qui fonctionnera en bash, fonctionnera en ksh

    ce qui fonctionnera en ksh, ne fonctionnera pas forcément en bash
    ce qui fonctionnera en bash, ne fonctionnera pas forcément en sh

    la preuve mon script n'aime pas du tout , mais alors pas du tout se lancer en bash !

  14. #14
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ce qui fonctionnera en sh, fonctionnera en bash
    ce qui fonctionnera en bash, fonctionnera en ksh

    ce qui fonctionnera en ksh, ne fonctionnera pas forcément en bash
    ce qui fonctionnera en bash, ne fonctionnera pas forcément en sh

    autrment dit il est fortement conseillé d'utiliser KSH quand il est disponible.

  15. #15
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Citation Envoyé par frp31 Voir le message
    autrment dit il est fortement conseillé d'utiliser KSH quand il est disponible.
    Bof, je ne partage pas vraiment ce point de vue. Quand on fait un script, autant veiller à ce qu'il soit le plus standard possible (c'est à dire utiliser Sh si possible, ou sinon Bash) bien entendu tant que cela reste possible (autrement dit tant que les fonctionnalités du shell utilisé nous sont suffisantes). Et puis sinon, ça n'a pas vraiment d'importance du momant que le script fonctionne sur les machines auxquelles il est destiné.

    Cordialement,
    Idriss

Discussions similaires

  1. logiciel WYSIWYG pour écrire des scripts shell ?
    Par TocTocKiéLà? dans le forum Applications et environnements graphiques
    Réponses: 11
    Dernier message: 29/12/2008, 15h57
  2. Réponses: 4
    Dernier message: 28/02/2007, 15h24
  3. [Système] Exec pour script shell
    Par Tempotpo dans le forum Langage
    Réponses: 9
    Dernier message: 31/08/2006, 14h08
  4. Besoin d'aide pour un script shell
    Par lecharcutierdelinux dans le forum Linux
    Réponses: 5
    Dernier message: 20/05/2006, 10h36
  5. Réponses: 2
    Dernier message: 01/06/2004, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo