0

セミコロンが 2 つある行にプログラム エラーがあり、予期しないトークンの近くに構文エラーがあることを示しています。助言がありますか?

#!/bin/bash


echo "Enter the access password..."
while
    do
        read INPUT_STRING
            case $INPUT_STRING in   

                    ##CORRECT PASSWORD##                
                    lux)        
                        ls -l -S > directory.txt
                            echo "Enter your username..."
                            read a  
                            sed '1 i\ $a' directory.txt
                        date=`date`
                            sed '2 i\ $date' directory.txt
                        date=
                        echo "The operation has completed successfully"
                    ;;

                    ##INCORRECT PASSWORD##          
                    *)  
                        x=1
                        while [ $x -le 3 ]
                        do
                        echo "Incorrect Password, try again. The program will exit after 3 failed attempts."
                        x=$(( $x + 1 ))
                        sleep 2
                        echo "Enter the access password..."
                        if x=3
                        then exit
                        fi
                    ;;
           esac
done
echo 
echo "Process Complete, Goodbye!"
4

3 に答える 3

2

あなたのwhile構文はめちゃくちゃです。whileと の間に条件が必要ですdo。それはおそらくcaseステートメントの解析を台無しにしています。

于 2013-06-03T19:45:31.213 に答える
2

コードに構文エラーがあります。の後に式を指定する必要がありますwhile

現在、次のものがあります。

while
do

whileキーワードがループするepxession を指定する必要があります。より具体的には、無限ループが必要なようです。これが当てはまる場合は、次を指定する必要があります。

while true
do
于 2013-06-03T19:46:13.423 に答える