Forum Puppy Linux - Toutou Linux - Astuces - Aide

Forum Francophone de Puppy/Toutou Linux => Scripts => Discussion initiée par: musher0 le Lundi 30 Avril 2018, 19:23:59

Titre: Étude sur des données en fin de script.
Publié par: musher0 le Lundi 30 Avril 2018, 19:23:59
Bonjour à toutes et à tous.

J'ai rassemblé dans un script un peu bébête des renseignements que j'avais grapillés ici et là dans de grands forums Unix, Linux et ailleurs, pour savoir si cela se faisait. Eh bien oui ! cela se peut, on peut mettre des données en fin de script, pourvu que la section données et le script même soient séparés par la commande exit.

Ce n'est pas de la plus grande utilité, mais quand même. Noter l'usage des utilitaires « à reculons » : la boucle « until » et l'utilitaire « tail ». À la rigueur, « tac » pourrait être utilisé au lieu de « cat », mais il faudra bien sûr écrire la liste de données de bas en haut (première ligne à la fin) et trouver le moyen de limiter la lecture que tac fait à X lignes. Ce script-exemple contient d'autres observations à lire, s.v.p.

Donc voici, sans prétention, mais dans l'espoir que ce sera utile à quelqu'un !

Bonne journée !

Christian
#!/bin/bash
# /opt/local/bin/liste-incluse.sh ## OU ## ~/my-applications/bin/liste-incluse.sh
#
# Objectif : Étudier sur la possibilité d'inclure des données à la fin du
# .---------- script même au lieu de les stocker dans un fichier externe.
####
# ©  Christian L'Écuyer , Gatineau (Qc), Canada,musher0, 2018/04/30, midi. GPL3
# (alias musher0 [forum PuppyLinux]) # Rév. : aucune.
#  Q. v. official EN text at: https://opensource.org/licenses/GPL-3.0.
# ~~~~~~~~~~~~~~
#  Ce programme est libre : vous pouvez le redistribuer ou le modifier
#  selon les termes de la Licence Publique Générale GNU publiée par la Free
#  Sorftware Foundation (v. 3 ou toute version ultérieure choisie par vous).
#        Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS
#  GARANTIE aucune, ni explicite ni implicite, y compris de commercialisation
#  ou d'adaptation à un but spécifique. Pour plus de détails, s.v.p. vous reporter
#  au texte officiel à https://opensource.org/licenses/GPL-3.0, à sa traduction à
#  http://www.linux-france.org/article/these/gpl.html et à l'explication à
#  https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
j=0;k=4

clear # Titre
echo -e "Petits animaux domestiques\n`tail -n 5 liste-incluse.sh | head -1`\n"

# Données
cris=( "jappe = barks" "miaule = meows" "grogne = grunts" "chante = sings" )
# Liste introduite exprès pour pouvoir étudier l'intégration d'autres données.

until [ "$k" = "0" ];do
    tail -n $k liste-incluse.sh | head -1 # Ainsi, on émet une seule ligne.
    echo -e "${cris[$j]}\n"
    # On ajoute de l'info supplémentaire correspondante tirée de la liste « cris ».
    j="`expr $j + 1 `"
    k="`echo $(($k - 1))`" # Plutôt cette forme de calcul, parce que
    # « expr » émet un message d'erreur quand il arrive à « zéro ».
done
exit # Tout ce qui vient après « exit » est ignoré par bash.
babiole fofolle # Cette étourderie n'est pas captée par le script.
On peut placer des explications, par ex., à cet endroit. Ou y écrire un roman !!! :)

À noter qu'on n'a pas besoin de modifier la permission (« exécutabilité »)
du script pour accéder aux données.

À noter aussi que dans le cas présent, c'est l'utilitaire « tail » qui les extrait.

Les données comme telles suivent :

FR  <-->  EN
chien = dog
chat = cat
cobaye = hamster
perruche = budgie

Résultat :
Citer
Petits animaux domestiques
FR  <-->  EN

chien = dog
jappe = barks

chat = cat
miaule = meows

cobaye = hamster
grogne = grunts

perruche = budgie
chante = sings
 
 
Titre: Re : Étude sur des données en fin de script.
Publié par: augras le Lundi 30 Avril 2018, 19:57:23
Ok pour l'exercice, mais je ne vois pas bien les possibilités d'utilisation  :-[
Philippe
Titre: Re : Étude sur des données en fin de script.
Publié par: musher0 le Lundi 30 Avril 2018, 22:34:22
Oui, je suis d'accord que c'est assez limité pour les données.  Selon leur nature et combien on en a, comme de raison. Au lieu d'avoir une bande de petits fichiers d'appoint, par exemple.

Néanmoins, quand on développe un script, si on sait qu'on peut griffonner n'importe quoi après la commande "exit" sans que cela affecte l'exécution, cet espace peut être commode pour y flanquer des notes de travail, des aide-mémoire, etc.

Ou même un petit tutoriel pour l'usager quand on a fini, et que le script tourne comme on veut. Au lieu de mettre les explications, etc., avant le script comme tel -- ce qui m'agace, personnellement. J'aime entrer rapidement « dans le vif du sujet », comme on dit.

À+
Simple Audio Video Embedder