Programme linux

Fermé
arame Messages postés 7 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 14 juin 2005 - 11 juin 2005 à 11:31
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 11 juin 2005 à 13:32
Bonjour

J'ai un petit souci avec un programme, l'utilisateur entre un chemin de répertoire et le programme lui affiche les sous répertoires et fichiers qui sont dedans. Le code :

read rep
echo "directory $rep"
liste=`ls $rep`
for i in $liste
do
a=`ls -l $i`
echo "$a"
done

le truc qui marche pas c'est le "ls -l $i"; le progamme ne reconnait pas le $i comme un fichier ou répertoire; pourtant le code me semble correct.

si vous avez une idée de ce qui cloche!

Merci bonne journée
A voir également:

2 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 567
11 juin 2005 à 12:17
Salut arame,

C'est normal que tu n'arrive pas.

Tu lis d'abord le répertoire (read rep)
/home/user (par exemple)
quand tu fait ls /home/user il t'affiche les nom des repertoires (mais pas l'arborescence complète)
et quand tu essaies de faire un ls sur un sous répertoire (ls -l $i) en fait tu ne trouve pas le sous-répertoire (il te manque le répertoire père)

Ex :
$ pwd # on vérifie le répertoire courant
$ /home/user
$ ls
user1 user2 # dans user1 on a le répertoire Documents
$ ls Documents # on essaie de lister Documents
ls: Documents: Aucun fichier ou répertoire de ce type # message d'erreur
$ ls /home/user1/Documents
rep1 rep2 fichier1

Donc pour que ton code fonctionne j'ai fait quelques modifications

#! /bin/sh

read rep
echo "directory $rep"
liste=`ls $rep`
for i in $liste
do
a=`ls -aRl $rep/$i`  # R opttion recursive, a pour all, $rep je m'assure que j'ai l'arborescence complète des sous-répertoires
echo "$a"
done
0
arame Messages postés 7 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 14 juin 2005
11 juin 2005 à 12:41
merci ça marche c'est vraiment gentil

bon weekend
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
11 juin 2005 à 13:32
Salut,

Tiens une variante avec la commande "tree" (man tree pour les différents paramètres) :
#! /bin/sh

echo "Entrez le nom d'un répertoire précédé de son chemin absolu."
echo "(Exemple : /home/user/images)"
read rep
echo
echo "Le répertoire $rep contient les fichiers et sous-répertoires suivants :"
echo "(Utilisez les flêches \"hauts et bas\" pour vous déplacez."
echo "Tapez \"q\" pour quitter.)"
sleep 4 # on fait une pause de 4 secondes pour afficher le message
tree -pfF $rep | less # on contrôle l'affichage avec "less" (man less)
exit
;-))
0