Explode en bash dans un tableau

Résolu/Fermé
Maillon Messages postés 156 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 15 avril 2011 - 14 nov. 2008 à 15:07
Maillon Messages postés 156 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 15 avril 2011 - 10 févr. 2009 à 18:16
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,

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
14 nov. 2008 à 19:03
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