2015-03-15 1 views
0

J'utilise declare avec whiptail pour créer une variable. L'entrée utilisateur de whiptail est définie comme la variable avec declare. Je veux utiliser le statut de sortie de whiptail (c'est-à-dire annuler ou esc) mais je viens d'obtenir le code de sortie de l'instruction declare?Comment obtenir le statut de sortie en utilisant declare de "déclarer" une variable bash

est ici morceau de code

declare DiagRes[$count]=$(whiptail --inputbox "${Description[$count]}" 8 110 \ 
            --backtitle "OVF Wizard" \ 
            --title "${Label[$count]}" 3>&1 1>&2 2>&3) 

Si je frappe annuler ou esc sur le whiptail, echo $? me donne 0 parce que l'instruction declare a réussi

Y at-il un moyen de séparer le code de sortie de la déclaration déclaration du whiptail qui suit?

Merci d'avance

+0

Utilisez un point-virgule: 'declare -a DiagRes; DiagRes [$ count] = ... ' –

Répondre

1

Pourquoi utiliser declare? Si vous venez d'écrire:

DiagRes[$count]=$(whiptail         \ 
        --inputbox "${Description[$count]}" 8 110 \ 
        --backtitle "OVF Wizard"     \ 
        --title "${Label[$count]}" 3>&1 1>&2 2>&3) 

il ferait aussi l'affectation, et vous obtiendriez le retour d'état. (. Tableaux non associatifs sont créés automatiquement si un élément est affecté, de sorte que vous n'avez pas besoin de les declare -a, à moins que vous voulez qu'ils soient locaux)

En fait, vous pouvez écrire:

DiagRes[count]=$(whiptail         \ 
       --inputbox "${Description[count]}" 8 110 \ 
       --backtitle "OVF Wizard"     \ 
       --title "${Label[count]}" 3>&1 1>&2 2>&3) 

car l'indice d'un tableau non associatif est un contexte arithmétique.

+0

Génial, merci rici. Je ne sais pas pourquoi j'utilisais déclarer, je l'avais vu ailleurs. Comme vous avez probablement remarqué, je suis nouveau à bash :) – SparkyRohan