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 17/03/2008, 23h19   #1
Membre éprouvé
 
Homme
Ingénieur systèmes et réseaux
Inscription : août 2007
Messages : 508
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : août 2007
Messages : 508
Points : 464
Points : 464
Par défaut Cherche à comprendre le but d'une certaine ligne d'un script shell

Pouvez vous m'expliquer que fait l'expression dans la boucle :

Code :
1
2
3
4
5
 
for jpeg in $REP/*.jpg; do
descr=${jpeg/jpg/txt}
 
done
publicStaticVoidMain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 07h46   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
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 546
Points : 7 779
Points : 7 779
tout simplement

pour tout fichier jpeg trouver dans $rep faire......
remplir la variable desc par ${valeur/jpg/txt}

ti tu as rep=titi fichier=toto.jpg
ca fait desc=toto.jpg/jpg/txt
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 11h05   #3
Invité de passage
 
Inscription : mars 2008
Messages : 1
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mars 2008
Messages : 1
Points : 1
Points : 1
Bonjour,

cela ressemble plus a de la substitution, quelle est le shell ?
juckc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 11h26   #4
Membre éprouvé
 
Homme
Ingénieur systèmes et réseaux
Inscription : août 2007
Messages : 508
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : août 2007
Messages : 508
Points : 464
Points : 464
Citation:
Envoyé par juckc Voir le message
Bonjour,

cela ressemble plus a de la substitution, quelle est le shell ?
C du sh.
publicStaticVoidMain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 11h55   #5
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Citation:
Envoyé par publicStaticVoidMain Voir le message
C du sh.
Non ça, c'est le format de ton fichier, exécutable shell, mais lequel ?
Il faut regarder la toute première ligne de ton script :

#!/bin/bash, #!/bin/ksh, #!/bin/nash, #!/bin/bsh ....?
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 12h21   #6
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
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 546
Points : 7 779
Points : 7 779
c'est pas du ksh dejà parce que la substitution ne marche pas comme ça.

mais comme ça
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  ${parameter:-word}
      Substitutes the value of parameter if it is set and non-null; other-
      wise, substitute word.
 
  ${parameter:=word}
      Sets parameter to word if it is not set or is null; the value of the
      parameter is then substituted.  Positional parameters cannot be
      assigned values in this way.
 
  ${parameter:?[word]}
      Substitutes the value of parameter if it is set and is non-null; other-
      wise, print word and exit from the shell.  If word is omitted, a stan-
      dard message is printed.
 
  ${parameter:+word}
      Substitute word if parameteris set and is non-null; otherwise, substi-
      tute nothing.
 
  ${parameter#pattern} | ${parameter##pattern}
      Causes the value of this substitution to be the value of parameter with
      the matched portion deleted if the shell pattern matches the beginning
      of the value of parameter; otherwise the value of parameter is substi-
      tuted.  In the first form, the smallest matching pattern is deleted and
      in the second form, the largest matching pattern is deleted.
 
  ${parameter%pattern} | ${parameter%%pattern}
      Causes the value of this substitution to be the value of parameter with
      the matched part deleted if the shell pattern matches the end of the
      value of parameter; otherwise, substitute the value of parameter. In
      the first form, the smallest matching pattern is deleted and in the
      second form, the largest matching pattern is deleted.
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 12h28   #7
Membre éprouvé
 
Homme
Ingénieur systèmes et réseaux
Inscription : août 2007
Messages : 508
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : août 2007
Messages : 508
Points : 464
Points : 464
Citation:
Envoyé par SnakemaN Voir le message
Non ça, c'est le format de ton fichier, exécutable shell, mais lequel ?
Il faut regarder la toute première ligne de ton script :

#!/bin/bash, #!/bin/ksh, #!/bin/nash, #!/bin/bsh ....?
Justement je ne parlais pas de l'extension du fichier. La première ligne commence effectivement par #!/bin/sh. Cest pour ca que j'ai dit que c'est du sh.
publicStaticVoidMain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 12h36   #8
Membre éprouvé
 
Homme
Ingénieur systèmes et réseaux
Inscription : août 2007
Messages : 508
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : août 2007
Messages : 508
Points : 464
Points : 464
Par défaut Bash et Sh

D'apres une mini recherche, cette expression
Code :
1
2
 
descr=${jpeg/jpg/txt}
est acceptée uniquement en bash mais pas en sh.
Citation:
Bash implements essentially the same grammar, parameter and variable expansion, redirection, and quoting as the Bourne Shell. Bash uses the POSIX 1003.2 standard as the specification of how these features are to be implemented. There are some differences between the traditional Bourne shell and Bash; this section quickly details the differences of significance. A number of these differences are explained in greater depth in previous sections. This section uses the version of sh included in SVR4.2 as the baseline reference.
Voici un lien en anglais qui explique les différences entre bash et sh :
http://www-licence.ufr-info-p6.jussi...s_sh_bash.html
publicStaticVoidMain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 14h30   #9
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Citation:
Envoyé par publicStaticVoidMain Voir le message
Justement je ne parlais pas de l'extension du fichier. La première ligne commence effectivement par #!/bin/sh. Cest pour ca que j'ai dit que c'est du sh.
Oups, autant pour moi, c'est juste que je n'utilise jamais le sh, plutot bash, voire ksh plus complet et personnalisable
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 17h08   #10
Membre émérite
 
Inscription : novembre 2007
Messages : 553
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 553
Points : 876
Points : 876
Bonjour.
/bin/sh est en génèral un lien vers le shell utilisé par défaut (/bin/bash ou autre).
Un script commençant pas #!/bin/sh doit être interprétable par tous les shells (en théorie!). Ce qui ne semble pas le cas ici.
Vers quel éxécutable pointe /bin/sh chez toi?
vinc-mai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 18h55   #11
Membre éprouvé
 
Homme
Ingénieur systèmes et réseaux
Inscription : août 2007
Messages : 508
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : août 2007
Messages : 508
Points : 464
Points : 464
Citation:
Envoyé par vinc-mai Voir le message
Bonjour.
/bin/sh est en génèral un lien vers le shell utilisé par défaut (/bin/bash ou autre).
Chez moi, c'est un lien symbolique vers /bin/bash
publicStaticVoidMain 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 +2. Il est actuellement 09h13.


 
 
 
 
Partenaires

Hébergement Web