检查用户输入的格式是否正确(Check a user's input is correctl

2019-10-19 01:44发布

我想,当他们进入一个日期到我的bash脚本来验证用户的输入。

正确的格式应该是YYYY-MM-DD HH:MM:SS

我到目前为止是这样的,但它并不完全正确。

read -p "-" datetime
if [[ $datetime ! "*[^2000-2100]-[^01-12]-[^10-31] [^00-24]:[^00-60]:[^00-60]*" ]]
  then
    echo "Not a date"
fi

Answer 1:

你可以说:

if ! date -d "$datetime" >/dev/null 2>&1; then
  echo "Not a date"
fi

使用正则表达式并不推荐使用,但如果你坚持,你可以说:

if [[ "$datetime" != 2[0-1][0-9][0-9]-[0-1][0-9]-[0-3][0-9]\ [0-2][0-9]:[0-6][0-9]:[0-6][0-9] ]]; then
  then
    echo "Not a date"
fi


文章来源: Check a user's input is correctly formatted
标签: linux bash unix