#1 Le 08/11/2020, à 14:38
- philoeil
[RESOLU] question de redirection
Bonjour,
sur 1 suite de commande rm
Je souhaite comptabiliser le nombre de commande qui réussissent et le nombre qui échouent et envoyer le tout dans un fichier journal et à l'écran
J'ai essayé ceci mais cela échoue
#!/bin/bash
touch ./bidon
truncate -s 0 Journal.txt
ls bidon && echo "bidon existe"
let CompteNombreFichierSupprim=0
#rm -v ~/Documents/JeCodeShell/TestRedirection/bidon && let "CompteNombreFichierSupprim +=1" | tee -a ./Journal.txt
rm -v ~/Documents/JeCodeShell/TestRedirection/bidon && echo "reussite" && let "CompteNombreFichierSupprim +=1" | tee -a ./Journal.txt
touch ./bidon
rm -v ~/Documents/JeCodeShell/TestRedirection/bidon && echo "reussite" && (( CompteNombreFichierSupprim ++ )) | tee -a ./Journal.txt
touch ./bidon
rm -v ~/Documents/JeCodeShell/TestRedirection/bidon && echo "reussite" && let "CompteNombreFichierSupprim = $CompteNombreFichierSupprim + 1" | tee -a ./Journal.txt
touch ./bidon
rm -v ~/Documents/JeCodeShell/TestRedirection/bidon && echo "reussite" && ((CompteNombreFichierSupprim = $CompteNombreFichierSupprim + 1)) | tee -a ./Journal.txt
touch ./bidon
rm -v ~/Documents/JeCodeShell/TestRedirection/bidon && echo "reussite" || echo "echec" | tee -a ./Journal.txt
rm -v ~/Documents/JeCodeShell/TestRedirection/bidon && echo "reussite " || echo "echec" | tee -a ./Journal.txt
echo "CompteNombreFichierSupprim=$CompteNombreFichierSupprim"
echo " le journal :"
cat ./Journal.txt
Le resultat :
$ ./RedirRm1.sh
bidon
bidon existe
'/home/phil/Documents/JeCodeShell/TestRedirection/bidon' supprimé
reussite
'/home/phil/Documents/JeCodeShell/TestRedirection/bidon' supprimé
reussite
'/home/phil/Documents/JeCodeShell/TestRedirection/bidon' supprimé
reussite
'/home/phil/Documents/JeCodeShell/TestRedirection/bidon' supprimé
reussite
'/home/phil/Documents/JeCodeShell/TestRedirection/bidon' supprimé
reussite
'/home/phil/Documents/JeCodeShell/TestRedirection/bidon' supprimé
reussite
'/home/phil/Documents/JeCodeShell/TestRedirection/bidon' supprimé
reussite
rm: impossible de supprimer '/home/phil/Documents/JeCodeShell/TestRedirection/bidon': Aucun fichier ou dossier de ce type
echec
CompteNombreFichierSupprim=0
le journal :
echec
Comment corriger pour que cela fonctionne ?
Merci
Dernière modification par philoeil (Le 08/11/2020, à 19:21)
Hors ligne
#2 Le 08/11/2020, à 15:10
- Hizoka
Re : [RESOLU] question de redirection
Salut,
echecs=0
reussites=0
if rm ~/Documents/JeCodeShell/TestRedirection/bidon
then
echo "reussite" >> Journal.txt
((reussite++))
else
echo "echec" >> Journal.txt
((echecs++))
fi
ou
rm ~/Documents/JeCodeShell/TestRedirection/bidon
Retour=$?
case ${Retour} in
0) echo "reussite" >> Journal.txt
((reussite++)) ;;
*) echo "echec n°${Retour}" >> Journal.txt
((echecs++)) ;;
esac
ou avec le message
Retour=$(rm -v ~/Documents/JeCodeShell/TestRedirection/bidon 2>&1)
Numero=$?
case ${Numero} in
0) echo "reussite" >> Journal.txt
((reussite++)) ;;
*) echo "echec n°${Numero} : ${Retour}" >> Journal.txt
((echecs++)) ;;
esac
Dernière modification par Hizoka (Le 08/11/2020, à 15:22)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#3 Le 08/11/2020, à 15:57
- philoeil
Re : [RESOLU] question de redirection
Bonjour,
Merci Hizoka ta solution fonctionne
Quelqu'un peut-il me dire pourquoi la commande suivante n'ajoute pas 1 à ma variable "CompteNombreFichierSupprim" quand la commande rm réussie?
touch ./bidon
rm -v ~/Documents/JeCodeShell/TestRedirection/bidon && echo "reussite" && (( CompteNombreFichierSupprim ++ ))
Hors ligne
#4 Le 08/11/2020, à 16:20
- pingouinux
Re : [RESOLU] question de redirection
Bonjour,
Peut-être n'as-tu pas lancé la commande à partir de ce répertoire ?
~/Documents/JeCodeShell/TestRedirection/
Hors ligne
#5 Le 08/11/2020, à 19:21
- philoeil
Re : [RESOLU] question de redirection
Bonjour,
Merci Pingouinux
Tu as raison la commande fonctionne
Mon erreur était le tube vers le fichier journal
Le code suivant ne marchait pas
$ rm -v ~/Documents/JeCodeShell/TestRedirection/bidon && echo "reussite" && (( CompteNombreFichierSupprim ++ )) | tee -a ./Journal.txt
Alors que la ligne suivante marche bien
phil@phil-G750JH:~/Documents/JeCodeShell/TestRedirection$ touch ./bidon
phil@phil-G750JH:~/Documents/JeCodeShell/TestRedirection$ rm -v ~/Documents/JeCodeShell/TestRedirection/bidon && echo "reussite" && (( CompteNombreFichierSupprim ++ ))
'/home/phil/Documents/JeCodeShell/TestRedirection/bidon' supprimé
reussite
phil@phil-G750JH:~/Documents/JeCodeShell/TestRedirection$ echo $CompteNombreFichierSupprim
1
J'aurais du plus tester avant de poster désolé et merci à tous
Hors ligne