2009-12-18 5 views
0

Le script que j'écris nécessitera que je passe des paramètres de ligne de commande. Je voudrais utiliser ces paramètres dans un tableau, mais je ne sais pas comment.

Un exemple très basique de ce serait (script exécuté comme ./script.sh array1):

#!/bin/bash 
array1=(a b c d) 

echo ${#$1[@]} 

La sortie devrait être 4, mais je reçois l'erreur suivante: line 5: ${#$1[@]}: bad substitution.

Je n'ai pas avoir pour utiliser des tableaux, mais je voudrais.

Merci pour toutes les idées

Répondre

2

vous devez obtenir bash pour remplacer la valeur de 1 $ avant d'évaluer la ligne, essayez ceci ...

eval echo \${#$1[@]} 
+0

A travaillé parfaitement, merci! –

0
eval echo '${#'$1'[@]};' 
Questions connexes