Parcours du repertoire donnée et de ses contenu

Fermé
sassoura Messages postés 21 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 31 juillet 2013 - 19 févr. 2013 à 10:35
sassoura Messages postés 21 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 31 juillet 2013 - 19 févr. 2013 à 15:46
Bonjour,

pouvez- vous m'aider svp (merci bien) il ne veut pas m'afficher le contenu

if (test $# -eq 0)
then for i in 'ls'
do
if (test -f $i)
then cat $i
elif (test -d $i)
then ls $i
fi
done
elif (test $# -eq 1)
then for i in 'ls $1'
do
if (test -f $i)
then cat $i
elif (test -d $i)
then ls $i
fi
done
fi

4 réponses

salut,

Enlève les parenthèses autour des tests (ça crée un sous-shell inutile),
et préfères le développement des chemins (cf. man bash) à l'usage de ls avec une boucle for.
Mets les variables entre guillemets.

Je ne vois pas l'intérêt d'effectuer exactement les mêmes opérations s'il y a un argument au script ou pas.
1
sassoura Messages postés 21 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 31 juillet 2013
19 févr. 2013 à 11:32
DZL mais ca ne marche pas ,il y a un probleme au niveau de l'affichage d'un repertoire donnée mais pour le repertoire courant ca marche bien
0
Utilisateur anonyme
19 févr. 2013 à 11:57
for f in ${1:+${1/%\/}/}*; do echo "$f"; done

voir man bash / Remplacement des paramètres
0
sassoura Messages postés 21 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 31 juillet 2013
19 févr. 2013 à 15:46
ca marche merci bien
0