scripts/wc-pattern/wc-pattern2.sh

71 lines
2.3 KiB
Bash
Raw Normal View History

2024-01-08 13:38:13 +00:00
#!/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