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 18/05/2008, à 12:37

n3o51

Message d'accueil lettre par lettre dans un terminal

Bonjour a tous ......

Suite a différents topic je poste ici la solution pour avoir a l'ouverture d'un terminal un message d'accueil qui s'affiche dans un style machine a écrire.

Donc dans votre ~/.bashrc

##Message d'accueil lettre par lettre
message="Wake up Neo !!! The matrix has you ..."
nLetter=${#message}
i=0
while [ "$i" -lt "$nLetter" ]
do
        sleep 0.1
        echo -n  "${message:$i:1}" 
        (( i += 1 ))
done
echo

Cela a pour effet de faire un message a l'ouverture de votre terminal lettre par lettre ....

Maintenant je recherchais bien plus moi, je voulais un message d'accueil si vous avez vu le film Matrix....Quand Trinity ce connecte a l'ordinateur de Neo et marque Wake up neo  etc

Mais le but étant d'écrire la ligne ci-dessus enfin de l'effacer et de récrire une ligne etc.....

la fonction a mettre dans le bashrc  et la suivante

tapelentement () {
for((i=0;i<${#1};i++)) ; do
printf "${1:$i:1}"
sleep 0.1
done
}

tapelentement "Wake up ,Neo"
$minute." | espeak -v fr -s 140 &
printf "\r%60s\r" 
tapelentement "The matrix has you"
printf "\r%60s\r"
tapelentement "Follow the white rabbit"
printf "\r%60s\r"
tapelentement "Knock Knock Neo"
printf "\r%60s\r" 
echo   //cette ligne permet le retour a la ligne

Voila !!!!

Dernière modification par n3o51 (Le 18/05/2008, à 16:35)


Welcome to the real world
________________________________

Hors ligne

#2 Le 18/05/2008, à 16:28

n3o51

Re : Message d'accueil lettre par lettre dans un terminal

Je vais editez mon premier poste

#!/bin/bash
function neo
{
    espeak -v us -s 140 "$*" &    
    m=$*;n=${#m};i=0
    while [ $i -lt $n ];do
        sleep 0.05
        echo -n "${m:$i:1}" 
        ((i+=1))
    done;echo
}
clear
neo "Wake up , Neo"
sleep 1 && clear
neo "The matrix has you"
sleep 1 && clear
neo "Follow the white rabbit"
sleep 1 && clear
neo "Knock knock Neo"

Celui es super aussi il permet de lire en meme temps ceux qui es ecrit !!!!

C'est effectivement cela que je recherchais big_smile

Merci ..........................................

Dernière modification par n3o51 (Le 18/05/2008, à 16:39)


Welcome to the real world
________________________________

Hors ligne

#3 Le 18/05/2008, à 16:45

n3o51

Re : Message d'accueil lettre par lettre dans un terminal

Avant neo "blabla" peut-on  faire clignote le pointeur


Welcome to the real world
________________________________

Hors ligne

#4 Le 18/05/2008, à 17:04

n3o51

Re : Message d'accueil lettre par lettre dans un terminal

J'ai trouvé mettre un sleep 1 et ca roule big_smile


Welcome to the real world
________________________________

Hors ligne

#5 Le 18/05/2008, à 19:42

ChRiiS

Re : Message d'accueil lettre par lettre dans un terminal

Euuu, pourquoi mon message est passé à la trappe ? En plus il avait l'air de satisfaire l'auteur du post...

Hm bizarre...
Bref je le remets en quote:

Salut n3o51,

Je t'avouerais que j'ai peur d'être un peu passer à côté de ce que tu voulais vraiment mais je me lancer quand même.

Pour commencer créer un fichier et dedans tu y mets le script suivant:

#!/bin/bash
function neo
{
    espeak -v us -s 140 "$*" &    
    m=$*;n=${#m};i=0
    while [ $i -lt $n ];do
        sleep 0.05
        echo -n "${m:$i:1}" 
        ((i+=1))
    done;echo
}
clear
neo "Wake up , Neo"
sleep 1 && clear
neo "The matrix has you"
sleep 1 && clear
neo "Follow the white rabbit"
sleep 1 && clear
neo "Knock knock Neo"

Tu l'enregistre sous le nom que tu veux  (on dira que tu l'appellera matrix_style pour la suite), puis

chmod +x matrix_style
(ou clique droit sur le fichier puis Permissions et enfin tu cocher "Exécution")

Et voilà.

N'hésite pas à me dire là où je n'ai pas compris (si c'est le cas) où a être un peu plus clair dans tes explications ^^"

PS: Pour la ligne avec l'heure et le jours je pense que ceci serait assez efficace:

echo "Neo nous sommes le `date "+%m %h %Y"`, il est `date "+%Hh%M:%S"`."

Mais en tout cas, je vois que c'était ce que tu voulais faire, c'est le principal, et effectivement pour sleep, tu as bien vu où c'était wink

Hors ligne

#6 Le 18/05/2008, à 19:45

ChRiiS

Re : Message d'accueil lettre par lettre dans un terminal

Arf et maintenant quand je post, ça double post...
Je ne peux pas croire que ça vienne du forum, ça doit venir de chez moi et j'en suis navré (ça explique aussi peut-être la disparition du post..)

(Pour info si ça peut aider, je suis sur un héron gnomesque avec Fx 3b5)

PS: Merci au gentil modo qui passera ici faire le ménage, et désolé pour la surcharge de travail tongue

Hors ligne

#7 Le 18/05/2008, à 19:46

slasher_fun

Re : Message d'accueil lettre par lettre dans un terminal

Pour le double post, déconnectes-toi puis reconnectes toi sur le forum smile

Hors ligne

#8 Le 18/05/2008, à 19:47

mr_pouit

Re : Message d'accueil lettre par lettre dans un terminal

ChRIIS > déconnecte et reconnecte toi de ton profil forum, et ça devrait stopper. wink

bon, grillé :@

Dernière modification par mr_pouit (Le 18/05/2008, à 19:47)

Hors ligne

#9 Le 19/05/2008, à 14:40

n3o51

Re : Message d'accueil lettre par lettre dans un terminal

Effectivement c'est vraiment étrange qu'il es disparu ......

Vraiment sympa de m'avoir apporté ton aide.....Cela dit je me permet un petit commentaire par rapport a ton script mais aussi surtout pour renseigner les personnes qui souhaiteraient comme moi l'utiliser dans leur fichiers Bashrc ....Il  y a un petit  soucis c'est que la premiere ligne s'affiche puis on as beaucoup d'espace enfin l'autre ligne s'affiche....

Pour resoudre cela je pense qu'il vaut mieux remplacer le &&clear par un retour a la ligne et un
printf "\r%60s\r"
qui effacera la dit ligne......Voila !!!!


Welcome to the real world
________________________________

Hors ligne

#10 Le 05/12/2008, à 16:37

ChRiiS

Re : Message d'accueil lettre par lettre dans un terminal

En relisant mes ancien post, je suis retombé sur celui là. C'était marrant ce petit script, allez j'ai 2min refaisons une version plus propre:

#!/bin/bash
function neo
{
        espeak -v us -s 140 "$*" &
        m=$*
        n=${#m}
        i=0
        echo -ne "                        \r"
        while [ $i -lt $n ];do
                sleep 0.05
                echo -n "${m:$i:1}"
                ((i+=1))
        done;
        echo -ne "\r"
        sleep 1
}
neo "Wake up , Neo."
neo "The matrix has you!"
neo "Follow the white rabbit."
neo "Knock knock Neo."

Terriblement inutile et légèrement kéké, mais faisable en 15sec et ne dépendant que d'espeak pour la synthèse vocale. Le bash, c'est bon, mangez-en!

Et puis l'avantage de ces petits scripts, c'est que ça permets à ceux qui ne connaissent pas trop bash de décortiquer de simple bout de code smile

Hors ligne

#11 Le 05/12/2008, à 22:00

n3o51

Re : Message d'accueil lettre par lettre dans un terminal

légèrement kéké,

roll


Welcome to the real world
________________________________

Hors ligne