【问题标题】:Error Converting String to Date in Shell在 Shell 中将字符串转换为日期时出错
【发布时间】:2016-01-09 06:02:58
【问题描述】:

您好,当我尝试执行以下代码时出现以下错误:

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

错误 -> [: : 需要整数表达式

【问题讨论】:

标签: bash shell syntax


【解决方案1】:

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

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"

【讨论】:

    【解决方案2】:

    删除第一行=之后的空格。

    【讨论】:

    • date_input=$1 它实际上是脚本的输入参数
    猜你喜欢
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    相关资源
    最近更新 更多