Tableaux en shell
Résolu/Fermé
Alucard95
Messages postés
157
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
19 juin 2009
-
16 oct. 2008 à 10:54
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 16 oct. 2008 à 15:13
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 16 oct. 2008 à 15:13
A voir également:
- Tableaux en shell
- Tableaux croisés dynamiques - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Fusionner deux tableaux excel - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Excel
- Mise en forme tableau word - Guide
17 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 897
16 oct. 2008 à 11:19
16 oct. 2008 à 11:19
Salut,
jp@MDK:~/tmpfs ssh$ touch fich{1,2,3,4,5}.txt jp@MDK:~/tmpfs ssh$ ls fich1.txt fich2.txt fich3.txt fich4.txt fich5.txt jp@MDK:~/tmpfs ssh$ tableau=( $(ls) ) jp@MDK:~/tmpfs ssh$ echo ${tableau[0]} fich1.txt jp@MDK:~/tmpfs ssh$ echo ${tableau[2]} fich3.txt jp@MDK:~/tmpfs ssh$ echo ${tableau[@]} fich1.txt fich2.txt fich3.txt fich4.txt fich5.txt jp@MDK:~/tmpfs ssh$;-))
Alucard95
Messages postés
157
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
19 juin 2009
2
16 oct. 2008 à 11:27
16 oct. 2008 à 11:27
Lorsque je fais :
$ echo ${tableau[0]}
j'obtiens :
Bad substitution
par contre si je fais :
$ echo $tableau[0]
j'obtiens :
fich1.txt fich2.txt fich3.txt fich4.txt fich5.txt
faut-il faire quelque chose au préalable pour que mon tableau se remplisse convenablement??
$ echo ${tableau[0]}
j'obtiens :
Bad substitution
par contre si je fais :
$ echo $tableau[0]
j'obtiens :
fich1.txt fich2.txt fich3.txt fich4.txt fich5.txt
faut-il faire quelque chose au préalable pour que mon tableau se remplisse convenablement??
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
16 oct. 2008 à 11:30
16 oct. 2008 à 11:30
Quel shell ?
Quel système ?
Quel système ?
Alucard95
Messages postés
157
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
19 juin 2009
2
16 oct. 2008 à 11:32
16 oct. 2008 à 11:32
Je suis sous ubuntu 8.04 et mon script porte l'extension .sh
En tout cas, merci de m'aider ;)
En tout cas, merci de m'aider ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
16 oct. 2008 à 11:36
16 oct. 2008 à 11:36
Comment as-tu déclaré ton tableau ?
Comme dans mon exemple ?
Attention il faut un espace de part et d'autre des parenthèses dans :
Comme dans mon exemple ?
Attention il faut un espace de part et d'autre des parenthèses dans :
tableau=( $(ls) )
Alucard95
Messages postés
157
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
19 juin 2009
2
16 oct. 2008 à 11:41
16 oct. 2008 à 11:41
pour tableau=( $(ls) )
Au debut je les avais bien mises mais ça me fait cette erreur :
Syntax error: "(" unexpected
Donc par la suite j'ai utilisé cette syntaxe :
tableau=$(ls)
mais je pense que c'est la raison de l'erreur Bad substitution
Au debut je les avais bien mises mais ça me fait cette erreur :
Syntax error: "(" unexpected
Donc par la suite j'ai utilisé cette syntaxe :
tableau=$(ls)
mais je pense que c'est la raison de l'erreur Bad substitution
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
16 oct. 2008 à 12:25
16 oct. 2008 à 12:25
Rajoute des quotes autour :
tableau="( $(ls) )"
tableau="( $(ls) )"
Alucard95
Messages postés
157
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
19 juin 2009
2
16 oct. 2008 à 13:06
16 oct. 2008 à 13:06
J'ai bien mis les guillemets mais j'ai toujours l'erreur bad substitution à la ligne
echo ${tableau[0]}
pareil si je l'écrit
echo "${tableau[0]} "
ou comme ça
echo "(${tableau[0]} )"
echo ${tableau[0]}
pareil si je l'écrit
echo "${tableau[0]} "
ou comme ça
echo "(${tableau[0]} )"
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
16 oct. 2008 à 13:11
16 oct. 2008 à 13:11
Essaie de reproduire ça :
jp@MDK:~/tmpfs ssh$ tableau=( A B C D E ) jp@MDK:~/tmpfs ssh$ echo ${tableau[@]} A B C D E jp@MDK:~/tmpfs ssh$ echo ${tableau[*]} A B C D E jp@MDK:~/tmpfs ssh$ echo ${tableau[0]} A jp@MDK:~/tmpfs ssh$ echo ${tableau[1]} B jp@MDK:~/tmpfs ssh$ echo ${tableau[4]} E jp@MDK:~/tmpfs ssh$
Alucard95
Messages postés
157
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
19 juin 2009
2
16 oct. 2008 à 13:19
16 oct. 2008 à 13:19
Il y a un truc que je pige pas, si je le fais directement dans mon terminal cela fonctionne bien.
Par contre si je le fais en exécutant mon script : sh mon_script.sh j'ai une erreur.
Par contre si je le fais en exécutant mon script : sh mon_script.sh j'ai une erreur.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
16 oct. 2008 à 13:21
16 oct. 2008 à 13:21
Affiche ton script alors...
Alucard95
Messages postés
157
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
19 juin 2009
2
16 oct. 2008 à 13:29
16 oct. 2008 à 13:29
Bah le truc c'est que j'ai fait des copier coller de mon script dans le terminal mais le voila :
#! /bin/sh
tableau=( A B C D E )
echo ${tableau[1]}
#! /bin/sh
tableau=( A B C D E )
echo ${tableau[1]}
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
16 oct. 2008 à 13:32
16 oct. 2008 à 13:32
Affiche un copier/coller du lancement de ton script et de l'erreur générée...
PS. Chez moi ça passe bien ;-\
PS. Chez moi ça passe bien ;-\
Alucard95
Messages postés
157
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
19 juin 2009
2
16 oct. 2008 à 13:40
16 oct. 2008 à 13:40
# sh mon_script.sh
mon_script.sh: 3: Syntax error: "(" unexpected
Si j'écris tableau=( A B C D E )
sh mon_script.sh
mon_script.sh: 5: Bad substitution
si je met tableau="( A B C D E )"
toujours avec
echo ${tableau[1]}
mon_script.sh: 3: Syntax error: "(" unexpected
Si j'écris tableau=( A B C D E )
sh mon_script.sh
mon_script.sh: 5: Bad substitution
si je met tableau="( A B C D E )"
toujours avec
echo ${tableau[1]}
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
16 oct. 2008 à 13:54
16 oct. 2008 à 13:54
Oublie définitivement cette forme :
tableau="( A B C D E )"
c'est une grosse c*nnerie que j'ai dite :-((
Par contre je ne m'explique pas l'autre erreur :-\
Je n'ai pas trop le temps là, je regarderai ça de plus près ce soir...
tableau="( A B C D E )"
c'est une grosse c*nnerie que j'ai dite :-((
Par contre je ne m'explique pas l'autre erreur :-\
Je n'ai pas trop le temps là, je regarderai ça de plus près ce soir...
Alucard95
Messages postés
157
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
19 juin 2009
2
16 oct. 2008 à 13:58
16 oct. 2008 à 13:58
Ok pas de soucis, je vais continuer de chercher et merci pour ton aide
Alucard95
Messages postés
157
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
19 juin 2009
2
16 oct. 2008 à 15:07
16 oct. 2008 à 15:07
Soluce trouvé jipicy, mon problème venait du fait que j'utilisait sh pour lancer mon script.
Si j'utilise la commande bash cela fonctionne :)
Merci de ton aide!!
Si j'utilise la commande bash cela fonctionne :)
Merci de ton aide!!
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
16 oct. 2008 à 15:13
16 oct. 2008 à 15:13
No problemo ;-)