2016-07-10 1 views
0

EDIT: J'ai d'abord pensé que ma variable n'acceptait pas l'entrée du clavier. J'ai corrigé ma question pour refléter plus précisément le problème.tsch: déclaration de cas n'évaluant pas

Dans le script ci-dessous, l'instruction case n'évalue pas.

Je suis assez nouveau pour tcsh ... Je veux juste input_line à accepter les caractères a-d en entrée à partir du clavier, que je ne suis pas sûr qu'il est, et exécuter l'instruction switch correctement. Je lis Sobell's "Un guide pratique pour les commandes Linux, les éditeurs et la programmation Shell." Ma syntaxe semble correcte basée sur le chapitre 9 du livre sur tcsh, mais, à ce stade, je ne sais pas ce que je fais mal. La recherche par SO n'a pas donné lieu à des questions similaires, ce qui est soit douloureux pour beaucoup, soit impossible à poser pour l'instant.

Est-ce que quelqu'un d'autre peut jeter un oeil et indiquer mon erreur?

#!/bin/tcsh 
# menu interface to simple commands 
set input_line = '' 
echo "\n  COMMAND MENU\n" 
echo " a. Current date and time" 
echo " b. Users currently logged in" 
echo " c. Name of the working directory" 
echo " d. Contents of the working directory\n" 
echo -n "Enter a, b, c, or d: " 
set input_line = "$<" 
# 
switch ($input_line) 
    case of [aA*]: 
      date 
      breaksw 
    case of [bB*]: 
      who 
      breaksw 
    case of [cC*]: 
      pwd 
      breaksw 
    case of [dD*]: 
      ls 
      breaksw 
    default: 
      echo "There is no selection: $input_line" 
      breaksw 
ends 

Pour être clair, je peux obtenir un script qui fait exactement la même chose en bash fonctionne correctement, mais je suis concentré sur tcsh.

Répondre

1

Cette ligne:

set input_line = "$<" 

fonctionne très bien. Le problème est que vous avez tort la syntaxe des étiquettes case. Remplacez case of par case et cela devrait fonctionner.

(je suis curieux de savoir pourquoi vous pensiez que le of était nécessaire.()

+0

Je suppose que je pensais que 'de' était nécessaire parce que je ne savais pas qu'il était incorrect! Merci pour l'aide! – NonCreature0714