在Shell中将字符串转换为日期时出错

时间:2016-01-09 06:02:59

标签: bash shell syntax

我尝试执行以下代码时遇到以下错误:

date_input= '2015-01-25'
date_parameter=$(date -d `echo $date_input` +%s)

min_date=$(date -d 2015-11-01 +%s)
max_date=$(date -d $(date +"%Y-%m-%d") +%s)

if [ "$date_parameter" -gt "$max_date" ] || [ "$date_parameter" -lt "$min_date" ]; then

错误 - > [::期望整数表达式

2 个答案:

答案 0 :(得分:3)

您可以使用以下方法修复脚本:

date_input='2015-01-25'
date_parameter=$(date -d "$date_input" '+%s')
min_date=$(date -d 2015-11-01 '+%s')
max_date=$(date '+%s')

[[ $date_parameter -gt $max_date || $date_parameter -lt $min_date ]] &&
  echo "ok" || echo "nope"

答案 1 :(得分:2)

删除第一行=后的空格。