Initiation au shell boucle (for, do, done)

punition de mon fils – initiation à la ligne de commande

La punition de mon fils.

J’avais prévenu, certains articles sentiront le réchauffé, celui date d’au moins environ 8 ans.

« Ton lit n’est pas encore fait!?… J’en ai assez! Tu vas me copier cent fois Je fais mon lit chaque matin. »

C’est ça l’autorité du père!

Une feuille m’arrive sous le nez, avec une seule ligne à l’encre noire:

for i in $(seq 100); do echo $i" Je fais mon lit chaque matin."; done;

Que dire?… La majuscule en début de phrase est respectée, le point final aussi et en plus, les lignes seront numérotées de 1 à 100.

Alors pour ne pas en rester là, je lui dis qu’une ligne de commande, c’est bien, mais un script aurait été mieux. Il faut bien avoir le dernier mot quand on est le père.

Introduction au script

Le signe « # » signifie que la ligne ou ce qui suit le « # » est un commentaire et donc ignoré par le Shell. Exception « #! » en effet « #! » (sans espace) signifie un préfixe au nom de l’exécutable qui va effectivement traiter les lignes qui le suivent. On l’appelle « shebang » et doit être la première ligne du script.

#!/bin/bash
# boucle basique avec for, do done
for i in $(seq 100)
do
echo $i" Je fais mon lit chaque matin."
done
echo "TERMINE"

Explications :
seq: affiche le nombre séquences allant de 1 au maximum indiqué.
for: cherche des éléments restants dans une liste ou ici dans une séquence de 1 à 100 (c’est-à-dire reste-t-il des chiffres à lire avant d’atteindre le maximum?), et attend donc une réponse à ce test.
Le code de retour est égal à 0 quand il est vrai (true) il est égal à 1 quand il est faux (false).
S’il renvoie « true » il met le nombre actuel dans la liste à la variable (« i » dans notre exemple) et exécute la partie entre do et done (écrit le chiffre « i » en cours et « Je fais mon lit chaque matin. »). Il vérifie de nouveau jusqu’au renvoie « false » qui signifie que les séquences sont terminées.
A « false », « for » arrête de boucler et passe à la ligne suivant « done« , l’instruction (echo « TERMINE »).
« echo » permet d’écrire à l’écran.

Vous allez me dire « Oui, mais la phrase peut être différente en fonction de la faute et le nombre de lignes peut varier en fonction de la gravité de la faute« .

Vous avez raison, il y a deux variables qu’il faut saisir, alors on peut rajouter:

#!/bin/bash
# boucle basique avec for, do done
echo -n "Entrez votre phrase de punition : "
read phrase
echo -n "Entrez le Nb de lignes : "
read lignes
for i in $(seq $lignes)
do
echo $i" $phrase"
done
echo "TERMINE"echo

Une fois le script enregistré (par exemple sous le nom : punition.sh), il suffit de le rendre exécutable puis le lancer, ce qui donne:

$ chmod +x punition.sh
$ ./punition.sh
Entrez votre phrase de punition : Je fais mon lit chaque matin.
Entrez le Nb de lignes : 5
Je fais mon lit chaque matin.
Je fais mon lit chaque matin.
Je fais mon lit chaque matin.
Je fais mon lit chaque matin.
Je fais mon lit chaque matin.
TERMINE

Vous pouvez aussi avec « $RANDOM » choisir un nombre aléatoire de lignes.

$ echo $RANDOM

Cela renvoie un nombre aléatoire entre 0 et 32767, oui, mais avec un peu de chance, on peut donc tomber sur 0 ligne, c’est inacceptable comme punition.
Nous allons donc rajouter un « +1 ».
«Oui, mais 32767 semble exagéré!»
Alors prenons le nombre de lignes maximum « 150 », ce n’est pas trop sévère…
Et voici notre ligne:

$ echo $((RANDOM%150+1))

A vous de l’intégrer dans votre script.

Dégooglisons Internet, Dégooglisez-vous

Dégooglisons-nous Dégooglisez-vous se débarrasser de google
Je retransmets ici un mail reçu de J-L. D.

« Internet est un outil incomparable, on peut en dire long et longtemps.

Avec le temps, des entreprises se sont créées et ont proposé leurs services, souvent gratuits. Il se trouve qu’aujourd’hui, beaucoup de ces services sont devenus incontournables pour beaucoup d’entre nous car ils sont éminemment pratiques. Pas de problème jusque là.

Mais aujourd’hui, certaines entreprises ont acquis des positions de type monopolistique, c’est à dire qu’elles éclipsent les autres et sont devenues pratiquement les seules à proposer un service donné. Cela nous restreint ou nous retire la liberté de choix, et leur laisse la possibilité de choisir et d’exploiter les contreparties qu’elles veulent à ce service (publicité, exploitation de données personnelles, établissement de profils de comportement, etc.). Chacun est libre d’aimer cela , ou bien se méfier de l’ascendant pris sur nous par ces compagnies.

C’est pourquoi l’association Framasoft lance une campagne de sensibilisation et d’action pour faire changer les choses et nous aider à récupérer de nos libertés de choix.

(…)

L’appel, avec les tenants et aboutissants : dégooglisons-internet

Et la liste des choix alternatifs que propose Framasoft.

C’est très ambitieux, vraiment, pour une simple association ! Mais si de nombreux internautes font ces choix-là, ils se seront aidés à se libérer… »

Merci J-L. D.

Google et moi, procédure de divorce entamée

À quel point suis-je encore dépendant de Google… Un article sur le blog de Seboss66 m’a donné envie de faire le point, moi aussi, sur les usages qui me lient encore, ou pas, à google.

Google et moi, une procédure de divorce entamée… En effet, je délaisse de plus en plus diverses applications (certaines, je ne les ai jamais utilisées) liées à Google, par goût de dépendance, de liberté et de protection de mes données personnelles.

Je vais décliner ce billet par application (mes choix).

Moteur de recherche

J’ai découvert google à ses débuts, il n’y avait pas de pub à l’époque et ce n’était qu’un moteur, simple et clair, qui m’a immédiatement enthousiasmé. Puis est venu la publicité! Ce n’est pas la publicité qui me gêne, c’est surtout le côté intrusif de Google et sa collecte de mes données pour recevoir des publicités ciblées, cela m’insupporte!

Par ailleurs, je ne le trouve plus si précis quoi qu’en disent tant d’utilisateurs. Les recherches renvoient toujours les mêmes sites en première page, j’ai le sentiment de voir constamment les mêmes sites… Et cela ne va pas s’améliorer avec son choix de mettre en avant les sites « responsive design » (voir l’article), donc au détriment du contenu des autres sites…

Il m’arrive souvent d’aller sur des sites mal fichus, qu’en html, et ne seront jamais en « responsive design », puisque ceux qui les ont créé, les laissent là, comme archives, car ils estiment qu’ils détiennent des informations utiles… Et n’ont pas forcement l’intention de les refaire…. Ces sites seront-ils relayés au fin fond des pages google ? Déjà qu’ils ne sont pas bien référencés par lui… Bref, je le trouve plus si pertinent que ça!

J’utilise un méta-moteur et divers moteurs de recherches, très rarement google, j’aime varier, j’ai fait le choix de ceux qui respectent la vie privée.

J’envisage d’installer Yacy sur mon serveur.

Diversifier vos moteurs et vous redécouvrirez l’internet!

Adresses mails

J’ai bien une adresse Gmail uniquement pour mon smartphone (j’en parle plus bas), sinon j’utilise les adresses de mon FAI, d’autres du fournisseur de mon nom de domaine et j’ai aussi quelques adresses « poubelles » pour les achats en lignes qui limitent le spam sur mes autres messageries.

Messagerie, contacts, agenda.

Le choix des messageries sous linux est important et chacun peut y trouver l’outil qui lui convient le mieux. Personnellement, j’ai fait le choix de « Evolution« , et cela depuis longtemps.
Mes contacts et mon agenda sont sur mon serveur perso, dans un Owncloud. Ils sont synchronisés avec Evolution et mon smartphone.

Maps, GPS, plan

J’utilise rarement Maps de Google, je préfère de loin OpenstreetMap que se soit sur le web ou sur mon smartphone (Via l’application Map Factor), dans ma voiture, c’est un GPS propriétaire. Pour les images satellites, j’utilise le site le l’IGN Géoportail.

Actualité

Je suis les sites qui m’intéressent depuis un agrégateur (via leur de flux de syndication).

Vidéos

Reste Youtube qui est difficilement incontournable.

Smartphone

Là, je suis toujours dépendant de google puisqu’il est sous androïde pour la simple raison qu’il n’y a pas de cyanogenmod pour mon smartphone, j’essaie toutefois d’utiliser les applications de préférence libres et les moins intrusives possible. Pour bien débuter sur le sujet, vous pouvez lire l’article « Vie Privée : les applications libres indispensables pour les smartphones Android » sur le site de Zenzla.

Le divorce avec Google est bien entamé, mais nous restons encore en contact pour les dernières formalités…

Nouveau départ du blog Sima78

Nouveau départ du blog Sima78Nouveau départ du blog Sima78

Après un gros plantage de mon blog, et surtout une grosse connerie erreur de ma part… ne pas avoir vérifié mes sauvegardes… Or les seules exploitables dataient de plus d’un an, j’ai décidé de repartir de zéro.

Revenez régulièrement car je vais re-écrire une grande partie des billets antérieurs.

Si le billet, ou sujet, que vous recherchez n’est pas là, faites-le moi savoir en m’écrivant.

Alors comme vous vous en doutez… nombreux des  billets à venir vont sentir le réchauffé!

Le site se trouve ici car le plantage de l’ancien blog vient des multitudes coupures ftp de chez free lors des sauvegardes, et aussi de ma part, pour ne pas avoir vérifié…

Nouveau départ, nouveau template, je compte faire mieux ici!

A très bientôt!