Pouvez vous m'expliquer que fait l'expression dans la boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for jpeg in $REP/*.jpg; do descr=${jpeg/jpg/txt} done
Pouvez vous m'expliquer que fait l'expression dans la boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for jpeg in $REP/*.jpg; do descr=${jpeg/jpg/txt} done
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
Bonjour,
cela ressemble plus a de la substitution, quelle est le shell ?
c'est pas du ksh dejà parce que la substitution ne marche pas comme ça.
mais comme ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
D'apres une mini recherche, cette expression
est acceptée uniquement en bash mais pas en sh.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 descr=${jpeg/jpg/txt}
Voici un lien en anglais qui explique les différences entre bash et sh :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.
http://www-licence.ufr-info-p6.jussi...s_sh_bash.html
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?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager