#!/bin/bash # Fonction pour générer un enchainement de techniques function generate_pattern() { local technique_type=$1 local pattern=$2 # Lire les techniques à partir du fichier CSV IFS=$'\n' read -d '' -r -a techniques < techniques.csv # Filtrer les techniques en fonction du type demandé (défense ou attaque) filtered_techniques=() for technique in "${techniques[@]}"; do name=$(echo "$technique" | cut -d ',' -f 1) type=$(echo "$technique" | cut -d ',' -f 2) if [ "$type" == "$technique_type" ]; then filtered_techniques+=("$name") fi done # Générer l'enchainement de techniques random_techniques=() for i in $(seq 1 ${#pattern}); do if [ "${pattern:i-1:1}" == "0" ]; then random_techniques+=("${filtered_techniques[$RANDOM % ${#filtered_techniques[@]}]}") else random_techniques+=("${filtered_techniques[$RANDOM % ${#filtered_techniques[@]}]}") random_techniques+=("&") fi done # Supprimer le dernier "&" s'il existe if [ "${random_techniques[-1]}" == "&" ]; then unset "random_techniques[${#random_techniques[@]}-1]" fi # Afficher l'enchainement de techniques echo "${random_techniques[@]}" } # Demander le pattern à l'utilisateur echo "Choisissez un pattern :" echo "1) Défense + attaque" echo "2) Défense + défense + attaque" echo "3) Défense + attaque + défense + attaque" echo "4) Défense + défense + attaque + attaque" echo "5) Personnaliser" read pattern_choice # Générer l'enchainement de techniques en fonction du pattern choisi case $pattern_choice in 1) generate_pattern 1 "01" ;; 2) generate_pattern 0 "010" ;; 3) generate_pattern 0 "1010" ;; 4) generate_pattern 0 "0011" ;; 5) echo "Entrez le pattern (par exemple, 0101 pour une défense suivie d'une attaque répétée deux fois) :" read pattern generate_pattern 0 "$pattern" ;; *) echo "Choix invalide." ;; esac