scripts/wc-pattern/wc-pattern.sh
2024-01-08 14:38:13 +01:00

72 lines
1.9 KiB
Bash
Executable file

#!/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