Index de tableau (bash)

yomb51 -  
 yomb51 -
Bonjour,
Alors j'ai un petit problème de tableau en bash
je voudrais indéxer mon tableau par un nom de fichier pour indiquer s'il est traité ou pas :
tab[chemin/fichier]="oui"/"non"
mais voilà apparemment ça le vexe quand je mets des "/" dans mon indice et je n'arrive pas à lui faire entendre raison....
A vot' bon coeur!
A voir également:

4 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

un indice c'est un entier et pas une chaîne de caractères
0
yomb51
 
vi mais si par exemple je lui dis tab[truc]="ahah" puis echo ${tab[truc]} il comprend très bien et m'affiche "ahah"
Alors peut-être que lui interprete truc comme un entier... mais y a-t-il un moyen pour que le / ne le gene plus

Sinon "au pire" je peux surement enlever les /... mais bon
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

tu peux t'orienter vers Perl qui utilise les hash ce qui te permettra d'utilser
$tab{'chemin/fichier'} = "oui"/"non";

mais si tu nous dit exactement le but de ton script peut être qu'on trouvera une solution ;-)

0
yomb51
 
C'est un projet de cours, le bash est "imposé".
En gros j'ai un script (avec un répertoire en param) qui me crée un fichier contenant la liste des fichiers du rép avec des paramètres (hash, date, user, group,..).
Et un 2eme qui doit verifier l'integrite du répertoire. Je verifie donc si les fichiers qui sont ds mon fichier de sauvgd ont été modifié, puis je regarde s'il y en a des nouveaux. C'est pour ca que je veux garder une trace des fichiers que j'ai deja verifié.

Nouveau probleme :
test_tab.sh
#!/bin/bash
s="home";
tab[${s}]="ahah";
echo ${tab[${s}]};

marche tres bien et affiche "ahah"

je fais la meme chose dans mon script, il m'envoie bouler :

tab[ohoh]="non";

./mydetect.sh: 239: tab[ohoh]=non: not found
0