1

ユーザー入力を受け取り、いくつかの検証を行う bash スクリプトを作成する必要があります。

入力は小さいです。ユーザーの選択「はい」または「いいえ」とファイルパスを取得し、入力が実際にファイルパスであり、ユーザーが「はい」または「いいえ」を入力したことを確認するだけです。

ユーザー入力を検証するにはどうすればよいですか?

4

1 に答える 1

4

あなたのbashプロンプトタイプから

読むのを助ける


例: ステップ 1。

pete@ruthie ~ $ read -p "Yes or No :" ANSWER

はいまたはいいえ:はい

pete@ruthie ~ $ echo $ANSWER

はい

ステップ2。

case $ANSWER in 
    Y* | y* ) echo "ANSWER is yes" ;; 
    N* | n*) echo ANSWER is no;; 
     *) echo "Unclear Response" ;; 
esac

答えはイエスです

または、すべて 1 行で:

case $ANSWER in Y* | y* ) echo "ANSWER is yes" ;; N* | n*) echo ANSWER is no;; *) echo "Unclear Response" ;; esac

答えはイエスです

漠然と次のようなもの::

   read -p "Enter File Name :" FILE_TO_CHECK 

    if [ ! -e "$FILE_TO_CHECK" ]; then 
        echo -e "There is no file called $FILE_TO_CHECK \n please check spelling"
    else
        echo  "Congratulations found $FILE_TO_CHECK. "
         ls -lah $FILE_TO_CHECK
         read -p "Process $FILE_TO_CHECK ? Y or N : PROCEED
           case $PROCEED in
             Y* | y*)
##call function or system command to do something with this data
               foo $FILE_TO_CHECK

             ;;
            * )
             echo -e "Note $USER\n No action taken by $0 on $FILE_TO_CHECK"
             ;;
            esac

    fi

テストコマンドはあなたの友達です。できるだけ早くその方法を学ぶ必要があります。

help [

help test

「help bashthing」コマンドは素早いリマインダーです。

参照: Advanced Bash Scripting Guide (ABS) http://tldp.org/LDP/abs/html/

FWIW: これは非常に単純な例であり、予期しないユーザー入力にはあまり対応できません。おそらく、これの各ステップで関数を呼び出すでしょう。そうすれば、条件付きでユーザーを別のチャンスで表現できるからです。

このようにネストされたケーステストは、単純に醜いです :) === きちんと整理して後で読むのは難しいです

GTK スタイルの GUI でこの試行錯誤をすべて達成する方法は他にもあります。

ABSは優れていますが、一度に食べようとしないでください!

于 2012-04-05T19:59:07.280 に答える