Créer un tableau en boucle à partir du nombre d'arguments

#!/bin/bash
COUNTER=$#
until [ $COUNTER -eq 0 ]; do
args[$COUNTER]=$$COUNTER
let COUNTER-=1
done
echo ${args[@]}

Lorsque je l'exécute, j'obtiens les résultats suivants

user@host:~/sandbox# ./script.sh first second third
$1 $2 $3

et je suis en espérant que cela l'écho de ce que $1, $2 et $3 ne sont pas un texte à valeur de "$1"

Je suis en train d'écrire un script en bash qui va créer un tableau de la taille du nombre d'arguments, je lui donne.

J'attends

user@host:~/sandbox# ./script.sh alpha bravo charlie
alpha bravo charlie

ou

user@host:~/sandbox# ./script.sh 23425 jasson orange green verb noun coffee
23425 jasson orange green verb noun coffee

L'objectif est donc de faire

args[0]=$1
args[1]=$2
args[2]=$3
args[3]=$4

La façon que je l'ai, le $1,$2,$3 ne sont pas interpolés, mais simplement en se lire comme une chaîne de texte.

source d'informationauteur spezticle