Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1796 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Simplification de cet algorithme ?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Simplification de cet algorithme ?

n°2381671
MilesTEG1
Posté le 13-04-2021 à 17:27:38  profilanswer
 

Salut :hello:
 
Je suis en train de faire un script Bash/Shell permettant de faire une sauvegarde des données de mon conteneur Gitea.
Avant de lancer les commandes, je m'assure que les dossiers nécessaires existent bien, avec cet algorithme :

Si testA=faux OU testB=faux alors  
  Si TestA=faux alors
      On ecrit que le dossier A n'existe pas
  Fin  
  Si TestB=faux alors
      On ecrit que le dossier B n'existe pas
  Fin
  On quitte en donnant un message d'erreur
Sinon
  On écrit que tout va bien, les dossiers existent.
Fin


 
Est-ce qu'il y a moyen de simplifier ça ? (l'algorithme)
 
 
Voilà le code que j'ai fait :
 

Code :
  1. if [ ! -d "$GITEA_BACKUP_DIR" -o ! -d "$GITEA_DATA" ]; then    # Au moins un des dossiers n'existe pas
  2.   if [ ! -d "$GITEA_BACKUP_DIR" ]; then   # Le dossier $GITEA_BACKUP_DIR n'existe pas !
  3.     echo "le dossier $GITEA_BACKUP_DIR n'existe pas !"
  4.   fi
  5.   if [ ! -d "$GITEA_DATA" ]; then       # Le dossier $GITEA_DATA n'existe pas !
  6.     echo "le dossier $GITEA_DATA n'existe pas !"
  7.   fi
  8.   echo "Abandon. Code d'erreur 999"
  9.   exit 999
  10. else
  11.   echo "les dossiers $GITEA_BACKUP_DIR et $GITEA_DATA existent bien. On peut continuer."
  12. fi


 
 
Merci d'avance.
 :hello:


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
mood
Publicité
Posté le 13-04-2021 à 17:27:38  profilanswer
 

n°2381692
rat de com​bat
attention rongeur méchant!
Posté le 13-04-2021 à 21:43:19  profilanswer
 

Si testA=faux OU testB=faux alors  
  Si TestA=faux alors
      On ecrit que le dossier A n'existe pas
  SINON
      On ecrit que le dossier B n'existe pas
  Fin
  On quitte en donnant un message d'erreur
Sinon
  On écrit que tout va bien, les dossiers existent.
Fin


 
A part ça...

n°2381693
MilesTEG1
Posté le 13-04-2021 à 21:49:26  profilanswer
 

rat de combat a écrit :

Si testA=faux OU testB=faux alors  
  Si TestA=faux alors
      On ecrit que le dossier A n'existe pas
  SINON
      On ecrit que le dossier B n'existe pas
  Fin
  On quitte en donnant un message d'erreur
Sinon
  On écrit que tout va bien, les dossiers existent.
Fin


 
A part ça...


Merci :)
Mais là, si jamais les deux dossiers n'existent pas, je ne le saurais pas puisque je n'aurais le message que pour l'un.


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
n°2381694
rat de com​bat
attention rongeur méchant!
Posté le 13-04-2021 à 21:50:57  profilanswer
 

Ah euh oui, en effet. Je retire ce que je dis. :o :o

n°2381765
Je@nb
Kindly give dime
Posté le 15-04-2021 à 15:17:34  profilanswer
 


foldersmissing = ""
si testA=faux alors
 foldersmissing = "A"
si testB=faux alors
 foldersmissing = foldersmissing + "B"
si foldersmissing != "" alors
 on écrit que foldersmissing est/sont manquants
 on quitte
sinon
 on écrit que tout va bien, les dossiers existent


 
Ca permet d'éviter de faire 2 appels systèmes pour chaque dossier

n°2381783
MilesTEG1
Posté le 15-04-2021 à 15:52:30  profilanswer
 

Je@nb a écrit :


foldersmissing = ""
si testA=faux alors
 foldersmissing = "A"
si testB=faux alors
 foldersmissing = foldersmissing + "B"
si foldersmissing != "" alors
 on écrit que foldersmissing est/sont manquants
 on quitte
sinon
 on écrit que tout va bien, les dossiers existent


 
Ca permet d'éviter de faire 2 appels systèmes pour chaque dossier


Ha oui ! Super ça :D
Merci ;)
J'applique cet algorithme :)  :jap:  :jap:


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
n°2385266
djinto
Posté le 15-05-2021 à 23:43:11  profilanswer
 

Bonjour MilesTEG1,
 
à tester la présence des repertoires il y a rien d'important pour les copies,
d'accord tu t'assures de la présence ou existence des 'dossiers'.
 
Les 'dossiers' existent d'accord.
 
Quand tu lances tes copies, un disque dur laches, le réseau se déconnectes, le Pc prends une micro-coupure..
tout ce qui peut faire rater ta copie ... ( le pire cas ).
 
Tu lancerai tes copies avec la commande dédié,
sur le premier fichier,  
un défaut te renvoies 'false'
et les milles autres fichiers font la même chose,
l'ensemble des copies a foiré
et pourtant les 2 dossiers sont valides.
 
en fait, tu aura testé autant de fois que nécessaires,
des 'variables adresse de disque' pour constater qu'aucune copies n'a été correctement réalisée.
 
en bref :
 
fais une boucle et envoies toutes tes copies une par une.
sur une erreur , c'est 'false' qui sera retourné.
 
Dans tes vérifications avant de copier,
tu va faire ( tu peux compter sur tes doigts le nombre de tests ),
4 tests au moins , puis faire une liste  
pour ne faire aucune copie ( en cas d'indisponibilité )
 
donc :
boucle sur ta liste de fichiers,
compte les erreurs dans des logs.
 
et tu divise le nombre de if if fi if if fi fi  par 4 au moins.
 
c'est parmi les 'erreurs de logique' en algo.
Trop de code en fait.
 
foreach "file_from" in LIST
bRETurn = true
bRETurn = copy_to( file_to , file_from )
 
if bRETurn == false then
log ( fail copy :: file_from )
fi
 
next for
 
C'est des accès "lecture / écriture" en moins etc ....
 
A chaque ligne de code , il se passes 1000 test , assignation , création d'objet , chargement , déchargement , instanciation ...
 
avec tout ça ...  diviser par 4 le travail a faire par le CPU ...
ça fait un soft hyper rapide non ?


---------------
Nom : Prénom : Age : Adresse : Ville : Code Postal : Num Trois Tel

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Simplification de cet algorithme ?

 

Sujets relatifs
Algorithme du codage de HuffmanAlgorithme de Goertzel: interprétation du résultat
Conseils pour algorithme de lissage de courbealgorithme pour modulo
Problème de complexité d'algorithmeAlgorithme de décomposition
Algorithme sur des "Demi-diagonales" de matricesConversion algorithme Python -> VBA (combinaisons de p élém. parmi n)
Explication complexité d'un algorithmeAlgorithme de simplification d'équation booléenne
Plus de sujets relatifs à : Simplification de cet algorithme ?


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR