Wake up Neo…

matrix_header

Niveau intermédiaire.

Vous rappelez vous de la première fois que Morpheus contacte Néo dans le film Matrix ? Petit rappel de la scène :
http://www.youtube.com/watch?v=6IDT3MpSCKI

Morpheus contacte donc Néo via le terminal de l’ordinateur de Néo. Voici un donc petit programme assez sympatoche que j’ai écrit qui reproduit cette scène partiellement cette scène. Partiellement, car ce programme ne fait qu’afficher les réponses de Morpheus, puisque Néo n’écrit pas mais parle.😉

Bref, bienvenue dans le monde de la Matrice.

#!/bin/bash
###################################################
# @author:Alexandre Ravaux                        #
# @date:2014/02/19                                #
# @shell:bin/bash                                 #
###################################################

##### The Neo Trip #####
reset
# Wake up Neo...
echo -n "W"; sleep 0.25; echo -n a; sleep 0.25; echo -n k; sleep 0.25; echo -n e; sleep 0.25; echo -n ' ';
echo -n u; sleep 0.25; echo -n p; sleep 0.25; echo -n ', '; sleep 0.25;echo -n N; sleep 0.25; echo -n e;
sleep 0.25;echo -n o; echo -n '.'; sleep 0.25;echo -n '.'; sleep 0.25;echo -n '.'; sleep 3;
reset
# The Matrix has you...
echo -n T; sleep 0.25; echo -n h; sleep 0.25; echo -n e; sleep 0.25; echo -n ' '; sleep 0.25; echo -n M;
echo -n a; sleep 0.25; echo -n t; sleep 0.25;echo -n r; sleep 0.25; echo -n i; sleep 0.25; echo -n x;
sleep 0.25;echo -n ' '; echo -n h; sleep 0.25;echo -n a; sleep 0.25;echo -n s; sleep 0.25;
echo -n ' '; sleep 0.25;echo -n y; sleep 0.25;echo -n o; sleep 0.25;echo -n u; sleep 0.25;
echo -n '.'; sleep 0.25;echo -n '.'; sleep 0.25;echo -n '.'; sleep 3;
reset
# Follow the White Rabbit
echo -n F; sleep 0.25; echo -n o; sleep 0.25; echo -n l; sleep 0.25; echo -n l; sleep 0.25;
echo -n o; sleep 0.25; echo -n w; sleep 0.25;echo -n ' '; echo -n t; sleep 0.25; echo -n h;
sleep 0.25;echo -n e; sleep 0.25; echo -n ' '; sleep 0.25; echo -n W; sleep 0.25;echo -n h;
sleep 0.25;echo -n i; sleep 0.25;echo -n t; sleep 0.25; echo -n e; sleep 0.25;echo -n ' ';
sleep 0.25;echo -n R; sleep 0.25;echo -n a; sleep 0.25;echo -n b; sleep 0.25;echo -n b;
sleep 0.25; echo -n i; sleep 0.25; echo -n t; sleep 0.25; echo -n '.';sleep 3;
reset
neo="`whoami`"
echo Knock, knock $neo; sleep 3;
reset

Des explications s’imposent ?

sleep comme vous pouvez le deviner (si vous avez fait un peu d’anglais) permet de faire des pauses.  Plus concrètement, il suspend l’activité pendant un certain lap de temps donné en secondes. Je suis obligé d’utiliser ceci car je veux faire des pauses entre chaque affichage des lettres (affichage à l’aide de la commande echo).
echo permet d’afficher du texte. echo W (ou echo "W") affichera W sur votre terminal. L’argument -n attribué à echo permettra d’afficher toutes les lettres sur la même ligne.
Lisez le manuel (man sleep et man echo) si vous avez des doutes, ou si vous êtes curieux.
Si vous avez exécuté le programme avant de lire l’article, vous avez pu voir que j’ai légèrement modifié la fin de cette scène.😉

Tester chez soi ?

Créer un fichier sans extension, ou bien avec l’extension .sh. Copier le code. Ensuite dans votre terminal, déplacez vous dans le répertoire approprié (à coups de cd). Ici, j’ai appelé mon script : « neo ». Je dois le rendre exécutable avec chmod et je lance ensuite mon script avec ./

$ chmod 755 neo
$ ./neo

Geek prank : Le lancer à chaque fois qu’on ouvre le terminal

N.B : Il faut avoir les droits nécessaires pour éditer le .bashrc.

$ [Nom de votre éditeur : emacs, gedit, nano...] .bashrc &

Ajouter les lignes de code, en omettant :

#!/bin/bash

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s