Advertisement
HDElectronics

Todo

Sep 19th, 2020
1,372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.23 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #Récupérer la liste des taches du fichier "mem"
  4. #Changer le delimiteur de "Espace" à "Nouvelle lingne"
  5. IFS=$'\n'
  6. #Lire et mettre dans une liste le fichier "mem" qui contient les taches
  7. readarray my_array <mem;
  8. #Executer ajoute ou liste ou fini selon ce que l'utilisateur a écrit en argument "$1"
  9. case "$1" in
  10.     ajoute) #dans le cas où l'utilisateur veut ajouter une tache
  11.         postoadd=$2
  12.         postoadd=$((--postoadd))
  13.         valtoadd=$3
  14.         ####################################################################################      
  15.         #Verifier si l'utilisateur a bien entré les arguments (position, tache)
  16.         if [[ $2 -eq 0 ]] || [ -z $3 ]
  17.         then
  18.             echo -e "il manque des argument! écriez sous
  19.            cette forme: ajoute <position> <\"tache à ajouter\">"
  20.             exit 0
  21.         fi
  22.         #####################################################################################
  23.         #verifier si la position n'est pas hors de portée
  24.         if [[ $2 -gt $((${#my_array[@]}+1)) ]]
  25.         then
  26.             echo "La position que vous avez choisi est hors de porté la position
  27.            max que vous pouvez choisir est: $((${#my_array[@]}+1)) "
  28.             exit 0
  29.         fi
  30.         ######################################################################################
  31.         #ajouter la tache à la position demander par l'utilisateur
  32.         for (( x=0; x<=${#my_array[@]}; x++ ))
  33.         do
  34.             if [[ ${x} -eq ${postoadd} ]]
  35.             then
  36.                 temp+=(${valtoadd})
  37.                 echo "La tache $valtoadd a été ajouté à la position $((postoadd+1))"
  38.             fi
  39.             temp+=(${my_array[x]})
  40.         done
  41.         my_array=(${temp[@]})
  42.     ;;
  43.     liste) #dans le cas où l'utilisateur veut voir la liste des taches
  44.         for x in ${!my_array[@]}
  45.         do
  46.             echo "$((x+1)) - ${my_array[x]}"
  47.         done
  48.         exit 0
  49.     ;;
  50.     fini) #dans le cas ou l'utilisateur veut enelever une tache de la liste
  51.         postodel=$2
  52.         postodel=$((--postodel))
  53.         # echo "La tache \"${my_array[$postodel]}\" a été finit"
  54.         # unset my_array[$postodel]
  55.         for (( x=0; x<=${#my_array[@]}; x++ ))
  56.         do
  57.             if [[ ${x} -eq ${postodel} ]]
  58.             then
  59.                 continue
  60.             fi
  61.             temp+=(${my_array[x]})
  62.         done
  63.         my_array=(${temp[@]})
  64.     ;;
  65.     --help) #dans le cas ou l'utilisateur veut voir le "help" de ce script
  66.         echo "Bienveunue dans le help de ce scripte TODO Liste"
  67.         echo "Vous pouver ajouter des taches à faire avec la commande (ajoute)"
  68.         echo "-  ajoute <position ou vous voulez
  69.        ajouter la tache> <\"la tache que vous voulez ajouter\">"
  70.         echo "-  liste"
  71.         echo "-  fini <position de la tache que vous voulez enelever>"
  72.     ;;
  73.     *) #dans le cas où l'utilisateur n'a entré aucun argument
  74.         echo "Entrez un argument (liste, ajoute, fini)"
  75.         echo "Pour plus d'information tapez: todo.sh --help"
  76.         exit 1
  77.     ;;
  78. esac
  79. #effacer le contenu de "mem" pour réecrire un nouveau contenu
  80. truncate -s 0 mem
  81. #mettre à jour la liste des taches
  82. printf "%s\n" "${my_array[@]}" > mem
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement