Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/05/2013, à 14:58

daisukiXCI

[Résolu][Aide Script BASH]Récupérer le contenu d'un dossier

Bonjour,

Je souhaite écrire un script bash dans lequel je mettrai un dossier en paramètre et le sript devra récupérer tout le contenu pour pouvoir après l'utiliser dans le script. Mais je galère un peu sur la récupération des fichiers. Si quelqu'un pouvait m'aider.

En espérant être clair, merci d'avance du temps consacré.

Dernière modification par daisukiXCI (Le 29/05/2013, à 15:38)

Hors ligne

#2 Le 29/05/2013, à 15:03

FelixP

Re : [Résolu][Aide Script BASH]Récupérer le contenu d'un dossier

Salut,
Google est ton ami ! tongue
Tu pourrais utiliser ls, mais il ne te délimite pas bien les noms si ils contiennent des espaces.

for i in $1*
do
echo "$i"
done

et

for i in $1*
do
echo `basename "$i"`
done

Si tu veux n'avoir que le nom et pas le chemin.
Félix

Dernière modification par FelixP (Le 29/05/2013, à 15:18)


Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#3 Le 29/05/2013, à 15:30

daisukiXCI

Re : [Résolu][Aide Script BASH]Récupérer le contenu d'un dossier

Déjà merci de ta réponse et si je me permets de poster un message c'est que j'ai déjà largement fouiller google wink

Mais malheureusement j'ai une erreur que je ne comprends pas en suivant ton conseil. En effet, ubuntu me réponds que je n'ai pas la permission même avec un sudo devant et un chmod 777.

Pour ne pas parler dans le vide je mets mon script.

#!/bin/bash

for i in `$1/*`;
do
	extension=${i#*.}
	echo "extension=$extension"

	
	if [ -z $i ]
	then
		echo "Without extension files"
	elif [ $i = "jpg" ] || [ $i = "png" ]
	then 
		echo "Extension of picture"
	fi
done

Son but étant de récupere l'adresse d'un dossier passé en paramètre 1 et de récupérer les éléments du dossier pour après le trier même si la je teste uniquement pour les images et je balance qu'un echo wink

EDIT: j'ai oublié de mettre l'erreur
./downSort.sh: line 16: ../testDir/fic1.png: Permission denied

Dernière modification par daisukiXCI (Le 29/05/2013, à 15:31)

Hors ligne

#4 Le 29/05/2013, à 15:34

tiramiseb

Re : [Résolu][Aide Script BASH]Récupérer le contenu d'un dossier

Salut,

Je n'ai pas regardé ton script en détails, mais voilà une première grosse erreur :

for i in `$1/*`;

à remplacer par :

for i in "$1"/*

Dernière modification par tiramiseb (Le 29/05/2013, à 15:35)

Hors ligne

#5 Le 29/05/2013, à 15:36

Hizoka

Re : [Résolu][Aide Script BASH]Récupérer le contenu d'un dossier

for i in "${1}/"*
# On ne met pas de `` ici...
do
	extension=${i#*.}
	echo "extension=${extension}"

	
	if [ -z $i ]
# Cas normalement impossible... si i est vide, la boucle ne le lance pas
# je pense que ce n'est pas i que tu veux mais extension...
	then
		echo "Without extension files"
	elif [ $i = "jpg" ] || [ $i = "png" ]
# je pense que ce n'est pas i que tu veux mais extension...
	then 
		echo "Extension of picture"
	fi
done

EDIT grillé smile

PS : tu n'avais du chercher tant que ca du coup tongue

http://abs.traduc.org/abs-fr/

Dernière modification par Hizoka (Le 29/05/2013, à 15:38)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 29/05/2013, à 15:37

daisukiXCI

Re : [Résolu][Aide Script BASH]Récupérer le contenu d'un dossier

merci beaucoup c'est effectivement de là que venait le problème

Hors ligne

#7 Le 29/05/2013, à 15:39

daisukiXCI

Re : [Résolu][Aide Script BASH]Récupérer le contenu d'un dossier

oui effectivement merci Hizoka je galère un peu xD

Hors ligne

#8 Le 29/05/2013, à 15:47

tiramiseb

Re : [Résolu][Aide Script BASH]Récupérer le contenu d'un dossier

Et puis là quand on comprend un peu ce qu'on écrit, même quand on débute en shellscripting, l'explication est évidente.

Les ``, c'est pour exécuter ce qui est à l'intérieur. Donc là tu demandais d'exécuter ce que donnait "ls $1/*".

Hors ligne

#9 Le 30/05/2013, à 14:40

daisukiXCI

Re : [Résolu][Aide Script BASH]Récupérer le contenu d'un dossier

merci oui c'est vrai désolé je ferais attention la prochaine fois

Hors ligne

#10 Le 30/05/2013, à 14:41

tiramiseb

Re : [Résolu][Aide Script BASH]Récupérer le contenu d'un dossier

On ne peut pas t'en vouloir de débuter...
On est tous passés par le stade où on fait des erreurs de débutant wink

Hors ligne