2017-07-31 1 views
0

J'ai besoin d'écrire un petit programme bash. Maintenant, je veux utiliser la fonction de cas, mais je reçois le message d'erreurBash avec erreur de syntaxe de cas `;; '

./arbeit1.sh: ligne 26: erreur de syntaxe à proximité du jeton inattendu ;;' ./arbeit1.sh: line 26: auswertung() ;; '

read auswahl 
case "$auswahl" in 
"1") 
    echo "Sternbox";; 
"2") 
    auswertung();; 
"3") 
    array();; 
"4") 
    exit;; 
*) 
    echo "Falsche Eingabe - Probieren Sie es nochmal";; 
esac 
+3

Ne pas utiliser "()" pour appeler une fonction. Il est utilisé pour définir une nouvelle fonction, et le corps devrait suivre, d'où l'erreur de syntaxe. – meuh

+0

En bash, les fonctions sont appelées exactement de la même manière que toute autre commande: ce n'est pas C/C++/Java/C#! – cdarke

Répondre

0

Problème sont les parenthèses dans vos appels de fonction. Ce n'est pas un code BASH valide.

les opérations suivantes:

read auswahl 
case $auswahl in 
    "1") 
    echo "Sternbox" 
    ;; 
    "2") 
    auswertung  # note no() here! 
    ;; 
    "3") 
    array 
    ;; 
    "4") 
    exit 0 
    ;; 
    *) 
    echo "Falsche Eingabe - Probieren Sie es nochmal" 
esac