#1 Le 16/05/2008, à 14:09
- cidou
[script-bash] Question sur la réalisation d'un script
Bonjours à tous, je voudrais faire un script qui simule le jeu du pendus et qui s'executerait de la facon suivante ./script le_mot_a_trouver (en argument donc), mais je ne vois pas comment faire en sorte que lorsque l'on saisit une lettre ( apres pendant l'exécution, avec read par exemple) on puisse la comparé avec les lettres du mot. J'ai un peu de mal à m'expliqué :x, en gros je me demande qu'est ce qu'on l'on utilise pour parcourir le mot (donc $1) lettre par lettre et lorsque la lettre que l'on tape fait partie du mot qu'elle soit reconnus . J'espere avoir été assez clair. Merci
Et comme un bon exemple c'est toujours mieux !!
./pendu patalo
> tape une lettre : i
aucune occurence : _ _ _ _ _ _
> tape une lettre : a
bien joué : _ a _ a _ _
etc..
Pourquoi aller voter aux européennes ? ::
http://www.numerama.com/magazine/12948- … u-net.html
Hors ligne
#2 Le 16/05/2008, à 16:08
- n3o51
Re : [script-bash] Question sur la réalisation d'un script
ca peut etre sympa !!!! !
Welcome to the real world
________________________________
Hors ligne
#3 Le 16/05/2008, à 16:49
- Totor
Re : [script-bash] Question sur la réalisation d'un script
une piste :
des fonctions awk permettent de trouver la positions de caractères dans une chaine....
dès que tu as la/les position(s), tu peux remplacer un caractère dans une autre chaine....
-- Lucid Lynx --
Hors ligne
#4 Le 16/05/2008, à 16:55
- cidou
Re : [script-bash] Question sur la réalisation d'un script
Merci d'avoir répondus, malheuresement, awk ne fait pas partie des commandes que l'on m'a apprit, et donc je ne l'ai jamais utilisé :x , il doit donc y avoir un moyen autre mais je ne vois pas lequel. Passer par un tableau peut etre ? je ne sais pas et j'aurais vraiment besoin d'une réponse avant se soir 00h. Si une ame charitable dainge m'aider je lui en serrais très reconnaissant!!
Pourquoi aller voter aux européennes ? ::
http://www.numerama.com/magazine/12948- … u-net.html
Hors ligne
#5 Le 16/05/2008, à 20:54
- cidou
Re : [script-bash] Question sur la réalisation d'un script
SVP répondez moi c'est urgent j'en ai absolument besoin avant demain, est ce que quelqu'un pourrait me donner l'idée des instructions, ou me dire les commandes à utiliser je vous en serrais très reconnaissant !! merci
Pourquoi aller voter aux européennes ? ::
http://www.numerama.com/magazine/12948- … u-net.html
Hors ligne
#6 Le 16/05/2008, à 20:57
- Totor
Re : [script-bash] Question sur la réalisation d'un script
mets ceci dans ton script :
#!/bin/bash
maFonction()
{
#set -x
# initialisation des variables
chaineSrc=$1
car=$2
chaineDest=$3
# index dans la chaine destination
indexDest=0
# index dans la chaine source intialisé à la 1ere occurence
indexSrc=`echo ${chaineSrc} ${car}|awk '{ print index($1,$2) }'`
while [ ${indexSrc} -gt 0 ]
do
# calcul de la position dans la chaine destination
indexDest=$((${indexDest}+${indexSrc}))
# remplacement du caractère dans la 1ere occurence
chaineDest=`echo ${chaineDest} ${car} ${indexDest}|awk '{print substr($1, 1,$3-1) $2 substr($1,$3+1) }'`
# suppression des indexSrc premiers caractères dans la chaine source (car awk ne permet de donner que le 1er index trouvé)
chaineSrc=`echo ${chaineSrc} ${indexSrc}|awk '{print substr($1,$2+1)}'`
if [ "${chaineSrc}" != "" ]; then
# recherche de l'index suivant dans la chaine source
indexSrc=`echo ${chaineSrc} ${car}|awk '{ print index($1,$2)}'`
else
indexSrc=0
fi
done
echo ${chaineDest}
}
chaine=`maFonction "patalo" "i" "______"`
echo $chaine
chaine=`maFonction "patalo" "a" "______"`
echo $chaine
à toi de l'exploiter .... (pour ton exercice ou autre )
mais effectivement... si on ne t'as pas appris awk et que tu ne connais que les tableaux....
Dernière modification par Totor (Le 17/05/2008, à 20:07)
-- Lucid Lynx --
Hors ligne
#7 Le 16/05/2008, à 21:51
- Totor
Re : [script-bash] Question sur la réalisation d'un script
Voici juste comment transformer une chaine de caractères en tableau.
Te donner plus ne serait pas te rendre service.
chaine="cequetuveux"
nbcar=${#chaine}
idx=0
while [ ${idx} -lt ${nbcar} ]
do
str="${chaine:${idx}:1}"
tabSrc[$idx]=${str}
tabDest[$idx]="_"
idx=$((${idx}+1))
done
echo tabSrc=${tabSrc[*]}
echo tabDest=${tabDest[*]}
tu peux remplacer
nbcar=${#chaine}
par
nbcar=$((`echo ${chaine}|wc -c`-1))
le reste est assez simple...
Dernière modification par Totor (Le 16/05/2008, à 21:52)
-- Lucid Lynx --
Hors ligne
#8 Le 17/05/2008, à 14:56
- cidou
Re : [script-bash] Question sur la réalisation d'un script
Merci totor, malheureseuement je ne connais pas trop sh et j'ai remarqué que la syntax était assez différente en certains point! Néanmoins j'ai trouvé la solution a mon probleme, je la posterais plus tard ou plus vite si quelqu'un est intéréssé
Pourquoi aller voter aux européennes ? ::
http://www.numerama.com/magazine/12948- … u-net.html
Hors ligne