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 :