Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 28/01/2010, 21h39   #1
Invité de passage
 
Inscription : janvier 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 7
Points : 0
Points : 0
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 !
grandju91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 22h37   #2
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
un cas concret ici...
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2010, 15h16   #3
Invité de passage
 
Inscription : janvier 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 7
Points : 0
Points : 0
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 ....
grandju91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2010, 16h24   #4
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
Code :
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_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/01/2010, 12h59   #5
Modérateur
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 704
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 704
Points : 4 345
Points : 4 345
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 .
__________________
modérateur rubriques Linux/Unix et chat
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2010, 16h46   #6
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 129
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 129
Points : 8 749
Points : 8 749
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).
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2010, 18h52   #7
Invité de passage
 
Inscription : janvier 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 7
Points : 0
Points : 0
Citation:
Envoyé par N_BaH Voir le message
Code :
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
grandju91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2010, 18h54   #8
Invité de passage
 
Inscription : janvier 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 7
Points : 0
Points : 0
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 !
grandju91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2010, 18h56   #9
Invité de passage
 
Inscription : janvier 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 7
Points : 0
Points : 0
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 ?

grandju91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2010, 20h31   #10
Modérateur
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 704
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 704
Points : 4 345
Points : 4 345
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
__________________
modérateur rubriques Linux/Unix et chat
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2010, 09h48   #11
Invité de passage
 
Inscription : janvier 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 7
Points : 0
Points : 0
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 !
grandju91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2010, 22h43   #12
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
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_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/02/2010, 19h46   #13
Invité de passage
 
Inscription : janvier 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 7
Points : 0
Points : 0
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 !
grandju91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2010, 11h10   #14
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 259
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
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 : 3 259
Points : 7 043
Points : 7 043
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.
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2010, 17h45   #15
Modérateur
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 704
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 704
Points : 4 345
Points : 4 345
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
__________________
modérateur rubriques Linux/Unix et chat

Dernière modification par ok.Idriss ; 08/02/2010 à 19h18.
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 17h59.


 
 
 
 
Partenaires

Hébergement Web