我试图编写一个脚本来检查特定时间窗口中的请求发生情况。我的方法包括一个变量$daysAgo
,它会在每次出现循环时递减。我不明白的原因是为什么剧本下面给我的是昨天的日期作为输出,而不是2周前。有任何想法吗?
#! /bin/bash
daysAgo=14
pastDate=$(date --date="($daysAgo) days ago" +%d/%b/%Y)
答案 0 :(得分:1)
我删除括号后就行了
#! /bin/bash
daysAgo=14
pastDate=$(date --date="$daysAgo days ago" +%d/%b/%Y)
答案 1 :(得分:1)
已修改的答案*
包含变量
带括号的" $ DAYSAGO"
将导致bash将其解释为子shell函数(具有自己的局部变量的函数)。在这种情况下的任何全局变量" $ daysAgo"将不会被替换为子shell函数。函数的思想就像一个单独的脚本,代码和它自己的变量。根据建议删除括号会将变量解释为全局变量