在bash脚本中接受日期作为用户输入

时间:2015-06-01 17:19:15

标签: linux bash shell unix unix-timestamp

我想以dd-mm-yyyy格式作为用户输入(通过读取)接受日期作为输入,然后将其转换为shell脚本中的日期对象。我怎样才能做到这一点。 我在yyyy-mm-dd取得了成功,但不知怎的,它不能用于我的用例。

这是我的剧本: -

#!/bin/bash
read -p "Enter a date (dd-mm-yyyy): " user_date
if date=$(date -d "$user_date" +'+%d-%m-%Y'); then 
  # user date was ok
  echo $date

这是我的意见: -

./2.sh
Enter a date (dd-mm-yyyy): 11-1-2011

错误:

date: invalid date `11-1-2011'

由于

1 个答案:

答案 0 :(得分:0)

要比较两个字符串(没有日期对象,只有[命令的字符串输出),您需要使用[[ ... ]]或最好使用条件语句if [[ $user_date = $(date -d "$user_date" +'+%d-%m-%Y') ]]; then 。< / p>

date

当然,不能保证self.stepsList可以将用户输入的字符串解析为日期。