1

ユーザーに次の質問をするスクリプトがあります。

read -p "Input time duration of simulation in HH:MM:SS format" -e Time

変数$Timeが実際に使用される前に、ユーザーが$ Timeの正しいフォームを入力したことを確認するにはどうすればよいですか?

4

2 に答える 2

2

時間<24、分<60、秒<60をチェックする必要があると思いますか?

read -p "Input time duration of simulation in HH:MM:SS format " -e Time

while :; do
  if [[ $Time =~ ^([0-9]{2}):([0-9]{2}):([0-9]{2})$ ]]; then
    if (( BASH_REMATCH[3] < 60 ))\
       && (( BASH_REMATCH[2] < 60 ))\
       && (( BASH_REMATCH[1] < 24 )); then
       break
    fi
  fi
  read -p "Wrong format. Please use the HH:MM:SS format " -e Time
done

# Do something with $Time  
于 2012-10-20T08:16:01.953 に答える
0

あなたはそのようにそれをテストすることができます:

if [[ $Time =~ ^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]$ ]]; then
    echo "format is ok"
else
    echo >&2 "format is wrong"
fi
于 2012-10-11T20:50:30.897 に答える