logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 22-02-2021 13:53:38

yui
Membre
Distrib. : DEBIAN GNU/LINUX 10 (buster )
Noyau : Linux 4.19.0-8 amd64
(G)UI : xfce
Inscription : 10-05-2020

[Résolu] afficher l'interieur d'un repertoire en bash

Bonjour,
Je panne sur le fait d'afficher l'interieur d'un répertoire en bash. Avant toute proposition, je préviens que ls et find ou tout autre commande évoluées me sont interdites.
J'ai commencé par des dir $1/* ---------dir ./$1/* et autre. A part dir je ne vois pas trop comment avancer. je n'arrive pas à cibler correctement le repertoire que je veux.
Je suis sur que c 'est juste un problème de syntaxe mais je ne trouve pas la solution dans le man de dir.
Dans l'espoir d'un coup de main, cordialement

Dernière modification par yui (24-02-2021 11:48:20)

Hors ligne

#2 22-02-2021 15:44:20

David5647
Membre
Distrib. : Debian Sid
Noyau : 5.15.0-2-amd64
(G)UI : i3wm + des bouts de kde
Inscription : 27-08-2017

Re : [Résolu] afficher l'interieur d'un repertoire en bash

Mmmh, pas sûr de tout saisir!?

yui a écrit :

des dir $1/* ---------dir ./$1/* et autre.

tu veux, dans un script, lister le contenu d'un dossier spécifié en paramètre ($1) ?


Qu'entends tu par évoluées? Tu souhaites utiliser uniquement les "shell builtins", pure posix?

ls et dir viennent de coreutils, je ne vois pas bien la contrainte d'utiliser l'une plutôt que l'autre.

dpkg -S /bin/ls

coreutils: /bin/ls


dpkg -S /bin/dir

coreutils: /bin/dir




Je suis pas super au clair entre ce qui est du shell pur ou pas,
mais je suppose que quelque chose du genre pourrait convenir pour lister le contenu d'un répertoire:

for f in *; do printf "$f"; done

Dernière modification par David5647 (22-02-2021 15:52:24)

Hors ligne

#3 22-02-2021 16:17:44

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [Résolu] afficher l'interieur d'un repertoire en bash

David5647 a écrit :

for f in *; do printf "$f"; done

Avec un retour-chariot sinon c'est hideux, big_smile

for f in *; do printf "$f\n"; done


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#4 22-02-2021 16:41:15

yui
Membre
Distrib. : DEBIAN GNU/LINUX 10 (buster )
Noyau : Linux 4.19.0-8 amd64
(G)UI : xfce
Inscription : 10-05-2020

Re : [Résolu] afficher l'interieur d'un repertoire en bash

bonjour, ben en fait je suis étudiant et mon exo est :


#Réaliser un script qui permet d'afficher le contenu d'un répertoire sous la forme :
#
#Contenu du répertoire /Users :
#- Frederic
#- Shared
#- administrateur
#
#Plusieurs cas à prendre en compte :
#
#       Pas d'argument -> affichage d'une erreur spécifique
#       Le répertoire passé en argument n'existe pas -> affichage d'une erreur spécifique
#        L'argument passé n'est pas un répertoire -> affichage d'une erreur spécifique
#        Ne pas utiliser find, ls ou toutes commandes évoluées.
#
#En tant qu'utilisateur (qui n'est pas root), essayer votre script sur un répertoire tel que chaque /root par exemple (en fait un répertoire inaccessible l'utilisateur). Modifier votre #script pour prendre en compte ce cas spécifique.



Du coup mon script contient

cible=$1

usage()
{
touch test
result=$`dir -x $cible > test`
echo 'Contenu du repertoire $cible :"
cat test
exit 0
]

mais je n'arrive pas a faire une redirection de la commande dir en ligne ( -l me donne trop d'information pas juste les noms de fichiers et dossier).

Du coup mon cat affiche  :

fichier dossier1 dossier2 dossier3

au lieu de

fichier
dossier1
dossier2
dossier3

Désolé de ne pas m'être relu

Dernière modification par yui (22-02-2021 17:19:55)

Hors ligne

#5 22-02-2021 16:51:24

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [Résolu] afficher l'interieur d'un repertoire en bash

yui a écrit :

bonjour, ben en fait je suis étudiant et mon exo est :
[--snip--]

Tu t'es relu après avoir posté ?
Tu t'es rendu compte que tu étais incompréhensible (mots absents, trois fois le même texte, pas d'utilisation de la balise "Commande utilisateur"…) ?

Bref, tu as un bouton "Modifier" pour rendre tout ça un peu plus digeste.


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#6 23-02-2021 23:08:52

David5647
Membre
Distrib. : Debian Sid
Noyau : 5.15.0-2-amd64
(G)UI : i3wm + des bouts de kde
Inscription : 27-08-2017

Re : [Résolu] afficher l'interieur d'un repertoire en bash

Je pense que tu pars dans une mauvaise direction,
à mon sens, dir est aussi "évoluée" que ls, pour le dire autrement, ne pas autoriser ls et autoriser dir n'aurait pas de sens.

Un exercice n'est pas jamais donné de façon innocente , il correspond sûrement à des notions vues en cours

#       Pas d'argument -> affichage d'une erreur spécifique

#       Le répertoire passé en argument n'existe pas -> affichage d'une erreur spécifique

#        L'argument passé n'est pas un répertoire -> affichage d'une erreur spécifique

Tests & Conditions

man test


#        Ne pas utiliser find, ls ou toutes commandes évoluées.

Boucles? Expressions régulières, shell expansions?

Hors ligne

#7 24-02-2021 08:46:46

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : [Résolu] afficher l'interieur d'un repertoire en bash

Hello
j'avais vu ce genre de chose
voici https://fr.wikibooks.org/wiki/Programma … sh/Boucles

-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

En ligne

#8 24-02-2021 11:47:35

yui
Membre
Distrib. : DEBIAN GNU/LINUX 10 (buster )
Noyau : Linux 4.19.0-8 amd64
(G)UI : xfce
Inscription : 10-05-2020

Re : [Résolu] afficher l'interieur d'un repertoire en bash

Merci beaucoup pour votre aide.

En effet la boucle était bien le procédé attendu.

J'ignorais l'existence du seq et cela m' a été utile.

Merci encore.

Hors ligne

Pied de page des forums