GNU/Linux >> Tutoriels Linux >  >> Linux

Typeset -a donne une erreur dans le script ?

J'utilisais des tableaux associatifs dans mon script, donc j'avais l'habitude de les déclarer par le

typeset -A <array_name> commande, et cela a bien fonctionné dans l'invite bash

Mais lorsque je l'utilise dans mon script, j'obtiens l'erreur suivante

typeset: -A: invalid option
typeset: usage: typeset [-afFirtx] [-p] name[=value] ...

Une solution alternative sera également acceptable pour moi.

SIDENOTE:J'ai essayé typeset -a mais il déclare un tableau indexé. Mais je veux un tableau associatif.

Réponse acceptée :

C'est l'erreur générée par Bash 3 pour typeset -A . Les tableaux associatifs ont été ajoutés dans Bash 4 et ne le sont pas dans Bash 3.2 et versions antérieures.

Il semble que votre script soit exécuté avec une version de Bash différente de celle que vous utilisez comme shell. Si vous êtes sur la même machine dans les deux cas, plusieurs versions sont installées et vous pouvez probablement en sélectionner une avec un chemin différent. Si vous êtes sur une autre machine exécutant le script, vous pourrez peut-être installer une version plus récente, mais sinon vous n'aurez pas de chance d'avoir une assistance directe dans Bash.

zsh prend en charge les tableaux associatifs depuis des versions beaucoup plus anciennes, donc si vous en disposez, vous pouvez probablement porter votre script sans trop de travail. Si vous ne parvenez pas à le faire, vous pouvez le simuler avec des tableaux normaux et grep , ou en utilisant ${[email protected]} et un ensemble de variables ordinaires, qui est disponible dans les anciennes versions de Bash. ${[email protected]} développe les noms de toutes les variables dont les noms commencent par prefix , que vous pouvez utiliser en combinaison avec plusieurs variables prefix_key1 , prefix_another pour obtenir la plupart des comportements des tableaux associatifs.


Linux
  1. Script Bash pour remplir un modèle ?

  2. Erreur de script bash :expression entière attendue ?

  3. Bash Script - Exemple Hello World

  4. Exécuter le script bash à partir de l'URL

  5. alternatives --config script bash java

35 exemples de scripts bash

Apprendre la gestion des erreurs Bash par exemple

Comment exécuter un script bash

Augmenter l'erreur dans un script Bash

Correspondance de modèle de script bash

Exécutez la commande bash sur le pipeline jenkins