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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  créer une commande trash

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

créer une commande trash

n°1403157
raghebgmir​a
Posté le 28-04-2017 à 10:39:49  profilanswer
 

Bonjour,
 
Est ce quelqu'un qui peux m'expliquer que fais chaque ligne de ci-dessous.
Ce code à pour objectif de : créer une commande trash qui déplacera les fichiers dans un répertoire poubelle au lieu de les effacer.
 
Merci à vous,

Code :
  1. #!/bin/bash
  2. if [ -z $1 ]
  3. then
  4. cat <<EOF
  5. Usage : trash [-h|-e|-c] [fichier1 ... fichiern]
  6. EOF
  7. exit 0
  8. fi
  9. if [ $1 = '-h' ]
  10. then
  11. cat <<EOF
  12. Usage : trash [-h|-e|-c] [fichier1 ... fichiern]
  13. EO
  14. exit 0
  15. fi
  16. if [ $1 = '-c' ]
  17. then
  18. du -sk ~/Poubelle
  19. exit 0
  20. fi
  21. if [ $1 = '-e' ]
  22. then
  23. rm -rf ~/Poubelle/*
  24. exit 0
  25. fi
  26. for I in $*
  27. do
  28. mv $I ~/Poubelle
  29. done


mood
Publicité
Posté le 28-04-2017 à 10:39:49  profilanswer
 

n°1403158
francoisp3​1
Posté le 28-04-2017 à 11:16:54  profilanswer
 

expliquer lgne par ligne n a pas de sens c est que de la syntaxe brute  
par cantre par fonctions .... la oui  
 
les tests utilises sont  
 
si condition  action  fin
et
pour tout element faire action boucle  
 


#!/bin/bash


appel interpreteur bash


if [ -z $1 ]
then
cat <<EOF
Usage : trash [-h|-e|-c] [fichier1 ... fichiern]
EOF  
exit 0  #quitte
fi  


literallement ce bloc test qu on a ou pas un parametres sinon ca sort avec le message d information
 

if [ $1 = '-h' ]
then
cat <<EOF
Usage : trash [-h|-e|-c] [fichier1 ... fichiern]
EOF  
exit 0


en plus il maquait le F a end of file  donc ca marchait  pas ....
si le parametre premier est -h afficher l aide  


if [ $1 = '-c' ]
then
du -sk ~/Poubelle
exit 0
fi  


si le parametre premier est -c  
aficher la taille occupee par la poubelle

if [ $1 = '-e' ]
then
rm -rf ~/Poubelle/*    #supprime sans conditiens tout ce qui est dans ~/Poubelle/*
exit 0
fi  


si le parametre est -e purger la poubelle

for I in $*
do  
mv $I ~/Poubelle
done


pour tout paramettre faire deplacement parametre dans ~/poubelle/
par defaut prendre tous le parametres (fichiers donnes) et les deplacer dans la poubelle
 
conseils  
-indenter le code
-une fonction help ou usage n affiche pas le nom du script en dur mais par $0 au cas ou un utilisateur renommerai le script  
-purger la poubelle devrai avoir un sous parametres pour ne purger que les N plus vieux ou se baser sur un nombre de jours - 90/180 par exemple
-un repertoire de travail d un script devrait etre cache (~/.poubelle et pas ~/poubelle)  
-si il y a que <=5 lignes utilises des echo pas des structures cat << EOF ............EOF  pour aerer le code  
-commenter un maximum le code parce que la ca va a 30 lignes tu retambe dessus 6 mais apres pas de soucis .... mais quand tu as 10/15 scripts qui bossent entre eux  et font 000 a 4000 lignes chacuns c est pas la meme limonade ... :)

 
 :hello:


Message édité par francoisp31 le 28-04-2017 à 11:39:04
n°1403179
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 28-04-2017 à 15:34:13  profilanswer
 

utiliser getopt. gerer les arguments comme ça c'est passéiste


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1403180
francoisp3​1
Posté le 28-04-2017 à 15:55:36  profilanswer
 

faut etre posix aussi :)  

n°1403186
watael
Posté le 28-04-2017 à 19:10:15  profilanswer
 

s'il faut être POSIX, il ne faut pas utiliser bash.
 
c'est le troisième forum, que je fréquente, sur lequel je vois ce message.
 
aucun effort de la part de l'OP n'a été fait.
frp31 est bien bon.


Message édité par watael le 28-04-2017 à 19:11:22

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  créer une commande trash

 

Sujets relatifs
Précision sur commande chmodCréer disque dur USB multiboot(win, linux, liveCD)
Commande ls : résultats différents entre debian et centosLigne de commande et processID
Créer un liveCDUtiliser la commande Mount sans saisir le mot de passe
Pourquoi utiliser Linux ? Utile pour créer un serveur ?Créer clé USB multiboot(win, linux, macOS, liveCD)
client mumble en ligne de commandesed : question sur la commande 'N'
Plus de sujets relatifs à : créer une commande trash



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR