Explode en bash dans un tableau

Résolu
Maillon Messages postés 157 Statut Membre -  
Maillon Messages postés 157 Statut Membre -
Bonjour à tous !

Voilà j'ai un fichier dans lequel j'ai une variable :
$PFile = "fichier1 fichier2 fichier3 ..."

ce que j'aimerai faire c'est un chmod sur chaque fichiers sachant que bien sûr les fichiers sont différent à chaque fois.

J'ai déjà fait un replace pour n'obtenir que la liste des fichiers avec ça :
TMP=$PFile
TMP="${TMP##*= }"
donc un echo de $TMP donnera : fichier1 fichier2 fichier3...

mais maintenant il faudrait que je puisse mettre la liste dans un tableau et pouvoir faire une action sur chaque fichier qu'il trouve dans le tableau.
Mais peut-être que l'idée du tableau n'est pas bonne.

Est-ce que quelqu'un aurait une idée ?

Merci beaucoup en tout cas.

Cordialement,
A voir également:

4 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Te casses pas la tête avec IFS, une simple boucle avec "for" suffit :
[tmpfs]$ ls
fich1  fich2  fich3

[tmpfs]$ ls -l
total 0
-rw-rw-r--  1 jp jp 0 nov 14 18:58 fich1
-rw-rw-r--  1 jp jp 0 nov 14 18:58 fich2
-rw-rw-r--  1 jp jp 0 nov 14 18:58 fich3

[tmpfs]$ var="$(ls)"

[tmpfs]$ echo $var
fich1 fich2 fich3

[tmpfs]$ for i in $var;do echo $i;done
fich1
fich2
fich3

[tmpfs]$ for i in $var;do chmod +x $i;done

[tmpfs]$ ls -l
total 0
-rwxrwxr-x  1 jp jp 0 nov 14 18:58 fich1*
-rwxrwxr-x  1 jp jp 0 nov 14 18:58 fich2*
-rwxrwxr-x  1 jp jp 0 nov 14 18:58 fich3*

[tmpfs]$ 
;-))
3
Maillon Messages postés 157 Statut Membre 5
 
Je crois que j'ai mis le message dans la mauvaise rubrique. Il faudrait que quelqu'un la déplace dans programmation.

Merci à vous :)

Cordialement,
0
Maillon Messages postés 157 Statut Membre 5
 
Je pense qu'il faut utiliser IFS pour séparer les champs mais bon j'en suis pas sûr. Je continue de chercher donc si vous avez des idées...

Merci.

Cordialement,
0
Maillon Messages postés 157 Statut Membre 5
 
Merci au fait jipicy.

J'ai réussi à faire ce que je voulais en utilisant ce que tu as mis plus haut.

Merci.

Cordialement,
0