Index de tableau (bash)

Fermé
yomb51 - 22 nov. 2007 à 15:42
 yomb51 - 22 nov. 2007 à 16:08
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!

4 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
22 nov. 2007 à 15:46
Salut,

un indice c'est un entier et pas une chaîne de caractères
0
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
22 nov. 2007 à 15:59
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
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