ユーザー入力を受け取り、いくつかの検証を行う bash スクリプトを作成する必要があります。
入力は小さいです。ユーザーの選択「はい」または「いいえ」とファイルパスを取得し、入力が実際にファイルパスであり、ユーザーが「はい」または「いいえ」を入力したことを確認するだけです。
ユーザー入力を検証するにはどうすればよいですか?
あなたの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は優れていますが、一度に食べようとしないでください!