Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 hmm )

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é tongue


Pourquoi aller voter aux européennes ? ::
http://www.numerama.com/magazine/12948- … u-net.html

Hors ligne