Suite à ton exemple d’utilisation d’eval, je ne résiste pas au plaisir malsain de partager ce bout de code :
# get archive-specific value for a given variable name, or use default value# USAGE: use_archive_specific_value $var_name
use_archive_specific_value(){[ -n "$ARCHIVE"]||return0
testvar "$ARCHIVE"'ARCHIVE'|| liberror 'ARCHIVE''use_archive_specific_value'local name_real
name_real="1ドル"local name
name="${name_real}_${ARCHIVE#ARCHIVE_}"local value
while["$name" !="$name_real"];dovalue="$(get_value "$name")"if[ -n "$value"];thenexport${name_real?}="$value"return0finame="${name%_*}"done}# get package-specific value for a given variable name, or use default value# USAGE: use_package_specific_value $var_name
use_package_specific_value(){[ -n "$PKG"]||return0
testvar "$PKG"'PKG'|| liberror 'PKG''use_package_specific_value'local name_real
name_real="1ドル"local name
name="${name_real}_${PKG#PKG_}"local value
while["$name" !="$name_real"];dovalue="$(get_value "$name")"if[ -n "$value"];thenexport${name_real?}="$value"return0finame="${name%_*}"done}
PS : Je sais que local n’est pas POSIX, je l’utilise quand même parce que dans les faits tous les interpréteurs que j’ai testé savent l’utiliser et qu’il est trop pratique pour s’en passer sans méchamment compliquer beaucoup de choses.
[^] # Re: autres langages ?
Posté par vv222 . En réponse au journal Shebang #!/usr/bin/env sh : testé et approuvé. Évalué à 3.
Suite à ton exemple d’utilisation d’
eval, je ne résiste pas au plaisir malsain de partager ce bout de code :PS : Je sais que
localn’est pas POSIX, je l’utilise quand même parce que dans les faits tous les interpréteurs que j’ai testé savent l’utiliser et qu’il est trop pratique pour s’en passer sans méchamment compliquer beaucoup de choses.