2016-10-09 1 views
-1

Ich bin ein Neuling Überlauf zu stapeln, so tragen Sie sich bitte mit der Formatierung Es ist ein echtes ProblemSyntaxfehler in der Nähe von unerwartetem Token `echo‘

ich ein Programm erschaffe zu kopieren, zu entfernen und eine Datei zu verschieben, aber kann immer noch nicht den Echo-Fehler beheben, der es behebt, was soll ich tun? Ich habe die andere verwandte Frage gelesen, die sagt, a einzuschließen; aber das hat auch nicht die Situation gelöst

#!/bin/bash 
    echo "Menu " 
    echo "1. Copy a File " 
    echo "2. Remove a file " 
    echo "3. Move a file" 
    echo "4. Quit" 
    echo "Enter ur Choice \c" 
    read Choice 
    case " $Choice " in 
    1. echo "Enter File name to copy \c" 
      read f1 
     echo " Enter File name \c " 
     read f2   
     if [ -f $f1 ] 
     then 
     cp $f1 $f2 
      else 
       echo "$f1 does not exist" 
      fi 
      ;; 
     2. echo "Enter the File to be removed " 
     read r1 
     if [ -f $r1 ] 
     then  
     rm -i $r1 
     else 
       echo "$r1 file does not exist " 
     fi 
     ;; 
     3. 
     echo "Enter File name to move \c" 
     read f1 
     echo "Enter destination \c " 
     read f2 
     if [ -f $f1 ] 
     then 
      if [ -d $f2 ] 
      then 
        mv $f1 $f2 
      fi 
     else 
     echo "$f1 does not exist" 
     fi 
     ;; 
    4. 
     echo "Exit......." 
     exit;; 
     esac 

Fehler

./script13.sh: line 10: syntax error near unexpected token `echo' 
    ./script13.sh: line 10: `  1. echo "Enter File name to copy \c " ' 
    [email protected]:~/bin# 

Antwort

0

Ihnen fehlt die Klammer, so:

#!/bin/bash 
echo "Menu " 
echo "1. Copy a File " 
echo "2. Remove a file " 
echo "3. Move a file" 
echo "4. Quit" 
read -p "Enter ur Choice >>> " 
case " $Choice " in 
    1) echo "Enter File name to copy \c" 
     read f1 
     echo " Enter File name \c " 
     read f2 
     if [ -f $f1 ] 
     then 
      cp $f1 $f2 
     else 
      echo "$f1 does not exist" 
     fi 
     ;; 
    2) echo "Enter the File to be removed " 
     read r1 
     if [ -f $r1 ] 
     then 
      rm -i $r1 
     else 
      echo "$r1 file does not exist " 
     fi 
     ;; 
    3) 
     echo "Enter File name to move \c" 
     read f1 
     echo "Enter destination \c " 
     read f2 
     if [ -f $f1 ] 
     then 
      if [ -d $f2 ] 
      then 
       mv $f1 $f2 
      fi 
     else 
      echo "$f1 does not exist" 
     fi 
     ;; 
    4) 
     echo "Exit......." 
     exit;; 
esac 
+0

Änderungen wurden vorgenommen und ich kann es jetzt ausführen. Vielen Dank!! –

+0

Vergessen Sie nicht, zu antworten/zu akzeptieren, wenn die Antwort Ihren Bedürfnissen entspricht. Überprüfen Sie http://stackoverflow.com/help/why-vote und http://stackoverflow.com/help/accepted-answer –

0

Statt 1. in Zeile 10, sollten Sie Verwenden Sie 1). Der richtige Weg, um eine Case-Anweisung zu tun ist:

case "$Choice" in 
    1) ... 
    ;; 
    2) ... 
    ;; 

Auch die Räume in " $Choice " entfernen.

Verwandte Themen