base.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/bin/bash
  2. #set
  3. #-e Exit immediately if a command exits with a non-zero status.
  4. #-u Treat unset variables as an error when substituting.
  5. #set -eu
  6. #fonction appelée en cas de paramètres non valide ou de l'option -h
  7. usage()
  8. {
  9. # "$(basename "${0}") pour gérer les espaces
  10. echo "$(basename "${0}") description"
  11. echo ''
  12. echo "détail des options"
  13. }
  14. generation_date()
  15. {
  16. DATE=`date +%y-%m-%d-%H:%M:%S`
  17. }
  18. #fonction principale
  19. main()
  20. {
  21. #boucle pour la gestion des options
  22. #a: signifie qu'un argument est attendu
  23. #hV signifie que ces options existent mais ne prennent pas de paramètre
  24. while getopts "a:c:hv" OPT
  25. do
  26. case "$OPT" in
  27. a)
  28. #Passage d'arguments
  29. #afin de garantir le contenu de la variable il est préférable de la déclarer comme readonly
  30. readonly ARGUMENT=${OPTARG}
  31. ;;
  32. c)
  33. #récupérer le chemin d'un fichier
  34. readonly CHEMIN="$(readlink -f "${OPTARG}")"
  35. ;;
  36. h)
  37. usage
  38. exit 0
  39. ;;
  40. v)
  41. readonly VERBOSE=true
  42. ;;
  43. *)
  44. #ce point est atteint lorsqu'une option inexistante est demandée
  45. echo "parametres non valide"
  46. usage
  47. exit 1
  48. ;;
  49. esac
  50. done
  51. #tester l'existence d'une variable
  52. if [ ! -z $VERBOSE ]
  53. then
  54. echo "VERBOSE : $VERBOSE"
  55. if [ ! -z $ARGUMENT ]
  56. then
  57. echo "ARGUMENT : $ARGUMENT"
  58. fi
  59. if [ ! -z $CHEMIN ]
  60. then
  61. echo "CHEMIN : $CHEMIN"
  62. fi
  63. fi
  64. exit 0
  65. }
  66. main "$@"