Script Sh gestion tableau

Fermé
Emilie - 9 sept. 2005 à 19:53
ZuluPro Messages postés 1 Date d'inscription vendredi 23 septembre 2011 Statut Membre Dernière intervention 23 septembre 2011 - 23 sept. 2011 à 10:13
Bonjour a tous ,
J'aimerais savoir comment gerer les tableau dans un script/bash.
Je sais que c tres simple en perl mais j'aimerai le réaliser en sh
Par exemple à l'issue de la commande ls -al prendre chaque nom de repertoire et le mettre dans un tableau ( premiere ligne 2 eme ligne etc..) puis dans une seconde colonne mais toujours dans le meme tableau y mettre les droits de ce repertoire..etc..

Merci de m'eclairer
Emilie
A voir également:

5 réponses

Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 779
9 sept. 2005 à 23:16
Bonjour,
Un début de piste : http://www.shellunix.com/awk.html
Pour continuer : http://lea-linux.org/pho/read.php?7,131669
Ça t'aide ?
1
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
9 sept. 2005 à 23:22
Bonsoir,

Les versions récentes de Bash supportent les tableaux à une dimension.

Ce que tu veux c'est un tableau à deux dimensions

TAB [i][j]

Je sais que c tres simple en perl mais j'aimerai le réaliser en sh
En Perl il n'y a pas non plus des tableaux à plusieurs dimensions. En revanche il ya des tableaux de tableaux (matrice à 2 dimensions),
tableaux de tableaux de tableaux (matrice à 3 dimensions), etc...

Ex de tableaux de tableaux en Perl

@TdT = (
          [ "nom", "prenom" ],
          [ "inconnu", "Emilie" ],
       );

print $Tdt[1][1]; affiche Emilie
1
Merci à tous les deux , je vais consulter vos liens.
EN perl je voulais dire de mettre toute une sortie d'une commande dans un tableau et ensuite utiliser split et les expressions regulieres pour prendre que ce qui m'intéresse mais ce n'est pas ce que je recherche tout de suite :)

Encore merci
Emilie
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
10 sept. 2005 à 15:16
Salut,

Peut être ça peut t'aider
#! /bin/sh

for fic in $@ # utilise * pour le repertoire courant
# éxécution avec $@ : ./tab.sh /rep/* ou ./tab.sh /rep/*.*
# éxécution avec * : ./tab.sh
 do
  array[$nom]=${fic##*/}
  array1[$droits]=`ls -dl  $fic | cut -d " " -f1`

  echo "${array1[$droits]}   ${array[$nom]}"
  let "index += 1"
  let "droits += 1"
 done
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ZuluPro Messages postés 1 Date d'inscription vendredi 23 septembre 2011 Statut Membre Dernière intervention 23 septembre 2011
23 sept. 2011 à 10:13
Bonjour,
Pour faire des tableaux à dimensions en bash, j'utilise la commande eval.
Avec une variable ligne et une variable colonne, je créer la variable cellule.

Exemple:
li=7
co=4
c74=Foo
eval echo \$c$li$co
Foo

Pour plus d'info voici mes sources:
http://gnu-bash.blogspot.com/2011/09/la-commande-eval.html
https://abs.traduc.org/abs-5.0-fr/ch14.html#ex43

Salutations
0