1
J'essaie de porter un script de BASH à ASH (Almquist SHell) et je rencontre un problème avec des références indirectes. La fonction suivanteASH référence indirecte variable
cmd() {
# first argument is the index to print (ie label)
arg=$1
# ditch the first argument
shift
# print the label (via indirect reference)
echo "${!arg}"
}
devrait produire la sortie suivante
cmd 1 one two three
one
cmd 2 one two three
two
cmd 3 one two three
three
Cela fonctionne comme prévu sous BASH, mais génère une "erreur de syntaxe: Bad substitution" lorsqu'il est exécuté sous ASH (ou DASH). Est-ce que cela devrait fonctionner? Si non, existe-t-il une alternative à l'utilisation de références indirectes?
C'est presque exactement ce que je suis venu avec juste après avoir affiché echo "$ (eval echo \ $$ arg)" – ctuffli