Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[débutant][bash] protéger les déclarations

3 réponses
Avatar
nico
Bonjour,

Quand je déclare des variables ou des "fonctions" dans un fichier,
j'ai peur de créer des collisions (utiliser des noms déjà existants).

Je me crée des "librairies" que j'inclus dans mes scripts en utilisant
"source <fichier librairie>", et pour l'instant, pour mes varaibles,
pour éviter une collision, leur nom est toujours préfixé par le nom du
fichier.

Mais existe-t'il un moyen plus propre de limiter la visibilité des
variables au fichier dans lesquelles elles sont déclarées ?

Ca existe en bash un truc qui permettrait de définir des espaces de
noms ?

Merci de m'éclairer :)

--
-NicoV-

3 réponses

Avatar
Pascal Bourguignon
nico writes:

Bonjour,

Quand je déclare des variables ou des "fonctions" dans un fichier,
j'ai peur de créer des collisions (utiliser des noms déjà existants).

Je me crée des "librairies" que j'inclus dans mes scripts en utilisant
"source <fichier librairie>", et pour l'instant, pour mes varaibles,
pour éviter une collision, leur nom est toujours préfixé par le nom du
fichier.

Mais existe-t'il un moyen plus propre de limiter la visibilité des
variables au fichier dans lesquelles elles sont déclarées ?

Ca existe en bash un truc qui permettrait de définir des espaces de
noms ?

Merci de m'éclairer :)


Utiliser Common-Lisp pour écrire ses script, et alors là on a par
exemple, les packages pour gérér des espaces de nom.

Clisp est bien pratique pour les scripts, car il comporte un pur
interpréteur (et aussi un byte-compiler comme perl si on veut
accélérer ses scripts algorithmiques).

On peut aussi conseiller scsh, basé sur scheme et utiliser les trucs
scheme pour gérer des "modules".


Sinon en bash, je ne vois que le préfixage:

. /usr/local/share/packages/com/informatimago/sh/MODULES.sh
. /usr/local/share/packages/com/informatimago/bash/MODULEZ.bash

function com_informatimago_bash_MODULEX_FUNCTIONY () {
# ...
com_informatimago_bash_MODULEZ_FUNCTIONF "$1" "$3"
com_informatimago_sh_MODULES_FUNCTIONF "$1"
# ...
}




--
__Pascal_Bourguignon__ . * * . * .* .
http://www.informatimago.com/ . * . .*
* . . / () . *
Living free in Alaska or in Siberia, a . . / . . * .
grizzli's life expectancy is 35 years, .*. / * . .
but no more than 8 years in captivity. . /* o .
http://www.theadvocates.org/ * '''||''' .
SCO Spam-magnet: ******************

Avatar
Stephane CHAZELAS
2003-12-09, 11:17(+01), nico:
Quand je déclare des variables ou des "fonctions" dans un fichier,
j'ai peur de créer des collisions (utiliser des noms déjà existants).

Je me crée des "librairies" que j'inclus dans mes scripts en utilisant
"source <fichier librairie>", et pour l'instant, pour mes varaibles,
pour éviter une collision, leur nom est toujours préfixé par le nom du
fichier.

Mais existe-t'il un moyen plus propre de limiter la visibilité des
variables au fichier dans lesquelles elles sont déclarées ?
[...]


Ne pas faire de programmation en shell.

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]

Avatar
Emmanuel Florac
Dans article ,
disait...

Mais existe-t'il un moyen plus propre de limiter la visibilité des
variables au fichier dans lesquelles elles sont déclarées ?



Utiliser un langage de programmation complet, comme Perl, Python, Ruby,
Ocaml, Haskell...

--
Quis, quid, ubi, quibus auxiliis, cur, quomodo, quando?