Utiliser le résultat de roll en variable dans un script bash idiot qui sert à rien
-
L’idée m’est venu ce matin en faisant mumuse avec roll. C’est pas très glorieux je sais xd. Étant donné que cette idée stupide m’est venu ici je me suis dit pourquoi pas venir en faire un topik ici, on sait jamais que quelqu’un ait une solution au problème que ça pose.
Enfin bref voilà le script (qui marche pas)
#!/bin/bash var1= rolldice "1d6" var2= rolldice "1d6" echo " $var1 " #renvoi ligne vide, ça m'a permis de comprendre le problème mais j'ai pas la solution if [ "$var2" -gt "$var1" ] ; then echo "succès" else echo "perdu" fi
Ce qui renvoi au prompt:
chaos@fleaux:~/Documents/scripts$ ./test-rolldice.sh 6 1 ./test-rolldice.sh: ligne 6 : [: : nombre entier attendu comme expression perdu
Alors je pense avoir identifié le problème, le résultat de rolldice 1d6 même s’il apparait au prompt comme un nombre entier en fait le résultat en lui même n’est pas un nombre entier mais un morceau de code qui fait apparaitre au prompt le nombre entier.
Du coup ça fait à peu près 8h que je me casse la tête à essayer de récupérer ce nombre entier pour en faire la variable. (Oui oui j’ai rien d’autre à foutre je sais xd)Je pense que ça doit être faisable avec grep mais j’arrive pas à trouver dans quel fichier rolldice écrit la réponse.
Si jamais quelqu’un a une idée je suis preneur.
Je mets ça dans détente et pas dans code parce que bon c’est ni utile ni ouf comme script quand-même. M’enfin si les problèmes inutiles ne branchent pas que moi, on sait jamais
Vous foutez pas trop de ma gueule ça fait 10 ans que j’ai pas écrit une ligne de bash alors mes souvenirs commencent à être un peu poussiéreux. Déjà que j’avais pas un super niveau alors là bonjour la catastrophe!
-
@A-chaos a dit dans Utiliser le résultat de roll en variable dans un script bash idiot qui sert à rien :
Oui oui j’ai rien d’autre à foutre je sais xd
Il y a pourtant des heures de lecture ici…
-
@duJambon Oui mais en fait si c’est vrai qu’en soit ce script il sert à rien je trouve que le problème qu’il pose est intéressant. Remarque j’ai tendance à trouver tous les problèmes intéressants j’avoue. haahaha. Mais bon l’idée c’était aussi d’essayer d’utiliser roll en variable pour avoir un résultat succès/échec avec une probabilité voulu dans un script.
-
Bon ben c’était juste une erreur de syntaxe en fait oups!
9h pour m’en rendre compte haahaha.
Désolé du topik qui sert à rien
Enfin si jamais quelqu’un veut jouer au dés seul contre son pc voilà voilà:#!/bin/bash var1=$(rolldice "1d6") var2=$(rolldice "1d6") echo "$var1" #maintenant ça fonctionne echo "$var2" if [ "$var1" -gt "$var2" ] ; then echo "succès" else echo "perdu" fi
-
Le problème existe toujours avec roll par contre, du coup la solution est simple, il suffit d’écrire un fichier du résultat de roll et aller chercher les caractères dont on a besoin (en l’occurrence le dernier “mot” de la première ligne qui est le résultat total numérique -j’ai utilisé sed-)
Et puis au passage j’en ai profité pour nettoyer le premier script bien dégueu .
Et puis pour utiliser roll non pas comme un lanceur de dés mais comme une probabilité échec/réussite de “n” évènements j’en ai fait un jeu de roulette russe avec choix du nombre de balles à mettre dans le barillet.#!/bin/bash #test avec rolldice var1=$(rolldice "1d6") var2=$(rolldice "1d6") echo -e "Test avec rolldice \nTu fais $var1 \nil fait $var2" #C'est plus propre comme ça quand même test "$var1" -gt "$var2" && echo -e "succès\n" || echo -e "perdu\n" #test avec roll roll '1d6' > tempVar1.txt && roll '1d6' > tempVar2.txt #Création des fichiers var3=$(sed -n 1p tempVar1.txt | sed 's/.* //') #Création des variables en ne récuppérant uniquement les caractères voulus var4=$(sed -n 1p tempVar2.txt | sed 's/.* //') echo -e "Test avec roll \nTu fais $var3 \nIl fait $var4" test "$var3" -gt "$var4" && echo -e "succès\n" || echo -e "perdu\n" rm tempVar1.txt tempVar2.txt #Suppression des fichiers #test avec roll 4d264 roll '4d264' > tempVar1.txt && roll '4d264' > tempVar2.txt var3=$(sed -n 1p tempVar1.txt | sed 's/.* //') var4=$(sed -n 1p tempVar2.txt | sed 's/.* //') echo -e "Test avec roll 4d264 \nTu fais $var3 \nIl fait $var4" test "$var3" -gt "$var4" && echo -e "succès\n" || echo -e "perdu\n" rm tempVar1.txt tempVar2.txt #roulette russe echo -e "ROULETTE RUSSE\nPour utiliser la probabilité échec/réussite d'un évennement\n" read -p "dans un barillet à 6 balles tu veux en mettre combien? : " var1 sleep 1 var2="1d$((6 / $var1))" var3=$(rolldice "$var2") test "$var3" -eq 1 && echo -e "T'es mort\n" || echo -e "T'es encore vivant\n" exit
Donne:
chaos@fleaux:~/Documents/scripts$ ./test-rolldice.sh Test avec rolldice Tu fais 5 il fait 4 succès Test avec roll Tu fais 5 Il fait 3 succès Test avec roll 4d264 Tu fais 617 Il fait 636 perdu ROULETTE RUSSE Pour utiliser la probabilité échec/réussite d'un évennement dans un barillet à 6 balles tu veux en mettre combien? : 2 T'es mort