#!/bin/bash # Lire les techniques à partir du fichier CSV IFS=$'\n' read -d '' -r -a techniques < techniques.csv # Fonction pour choisir une technique aléatoire d'un certain type function choose_random_technique() { local technique_type=$1 local filtered_techniques=() for technique in "${techniques[@]}"; do local name=$(echo "$technique" | cut -d ',' -f 1) local type=$(echo "$technique" | cut -d ',' -f 2) if [ "$type" == "$technique_type" ]; then filtered_techniques+=("$name") fi done # Choisir une technique aléatoire parmi les techniques filtrées local random_index=$(( RANDOM % ${#filtered_techniques[@]} )) echo "${filtered_techniques[random_index]}" } # Demander le choix du pattern à l'utilisateur echo "Quel pattern souhaitez-vous choisir ?" 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 -p "Entrez le numéro de votre choix : " pattern_choice # Générer l'enchaînement de techniques en fonction du pattern choisi case $pattern_choice in 1) defense_technique=$(choose_random_technique 0) attack_technique=$(choose_random_technique 1) echo "$defense_technique & $attack_technique" ;; 2) defense_technique=$(choose_random_technique 0) echo "$defense_technique & $defense_technique & $(choose_random_technique 1)" ;; 3) defense_technique=$(choose_random_technique 0) attack_technique=$(choose_random_technique 1) echo "$defense_technique & $attack_technique & $defense_technique & $attack_technique" ;; 4) defense_technique=$(choose_random_technique 0) echo "$defense_technique & $defense_technique & $(choose_random_technique 1) & $(choose_random_technique 1)" ;; 5) read -p "Entrez votre propre pattern en utilisant 0 pour la défense et 1 pour l'attaque (par exemple, 0101) : " custom_pattern pattern_output="" for c in $(echo $custom_pattern | grep -o .); do if [ "$c" == "0" ]; then pattern_output+="$(choose_random_technique 0) & " else pattern_output+="$(choose_random_technique 1) & " fi done echo "${pattern_output::-3}" # Supprimer le dernier "&" et l'espace ;; *) echo "Choix invalide." ;; esac