script.sh execution automatique de fichier avec extension


3 posts
by valentin.raspberry » Thu Jun 15, 2017 8:31 am
bonjour, voila mon soucis je me suis creer un script pour lister les fichiers d'un dossier puis par la suites leurs extensions (.pdf, .txt ...). je voudrais que en fonction de l'extension un programme s'execute automatiquement.
ci-dessou mon script il n'est pas bien optimisé mais il marche:

#!/bin/bash

#Description du script
#####################################
#Ce script permet de lister les fichiers d'un dossier dans un nouveau fichier


#Etape 1 : Trouver le dossier avec les fichiers à lister
#####################################

DOSSIER="/home/pi/Documents/test"

#Etape 2 : On stocke la liste des fichiers du dossier en question dans le fichier qu'on enregistre
#####################################


cd $DOSSIER
res=$(find . -name \* | wc -l)
for element in *
do echo "$element"
done

#echo "bonjour ce dossier contient $res fichiers"

if [ $res = "1" ]
then

echo "le dossier ne contient pas de fichier"

elif [ $res = "2" ]
then

echo "le fichier vas s'executer"

else
numero=0
for fichier in *
do
numero=$(($numero+1))
echo "$numero - $fichier"
echo ${fichier#*.}
done

fi

voila merci de bien vouloir m'aider :).
Posts: 1
Joined: Thu Jun 15, 2017 7:41 am
by totoharibo » Thu Jun 15, 2017 10:53 am
J'ai fait "autrefois" un script de recherche de fichiers qui appelle le traitement correspondant à son extension.
à mettre dans la boucle : extension étant à isoler (ou alors *jpg, *txt, etc pas testé)
case $extension in
jpg|JPG|png|pnm|tif)pix ${fichiers[$num]} ;;
lyx)lyx ${fichiers[$num]} ;;
txt)gvim ${fichiers[$num]} ;;
doc|DOC|odt|ods|xls|wpd)libreoffice ${fichiers[$num]} ;;
pdf|ps)mupdf ${fichiers[$num]} ;;
vym)vym ${fichiers[$num]} ;;
*)if [ -d ${fichiers[$num]} ] ; then
nemo ${fichiers[$num]}
else
zenity --info --title="extension inconnue" --text="$(file ${fichiers[$num]})"
gvim ${fichiers[$num]}
fi
;;
esac
Posts: 3087
Joined: Thu Jan 24, 2013 8:43 am
by totoharibo » Fri Jun 16, 2017 8:41 pm
et pour trouver l'extension (pas obligatoirement la meilleure solution mais elle fonctionne)
extension=$(echo $nom_fichier | awk 'BEGIN{FS="."} {print $NF}')
Posts: 3087
Joined: Thu Jan 24, 2013 8:43 am