【发布时间】:2023-03-06 13:24:01
【问题描述】:
我有一个 bash 脚本,它检查输入日期($1)是否在日期范围内。用户输入日期和(a 或 b,即 2 美元)。
#!/usr/bin/env bash
today=$(date +"%Y%M%d")
declare -A dict=$2_range
a_range=( ["20140602"]="20151222" ["20170201"]="$today" )
b_range=( ["20140602"]="20150130" )
for key in ${!dict[@]}; do
if [[ $1 -le ${dict[$key]} ]] && [[ $1 -ge $key ]]; then
echo $1 falls in the range of $2
fi
done
我不知道如何将关联数组复制到 dict 变量。 示例使用
$ ./script.sh 20170707 a
20170707 falls in the range of a
【问题讨论】:
-
b_range不是一个范围。 -
我有一个开始日期和结束日期作为键值对。它不是一个真正的范围
-
那为什么
a_range中有两个元素呢? -
日期可以分为两个不同的范围。
-
可能重复:stackoverflow.com/questions/11180714/…。也就是说,可能不是完全相同的副本,但这里的解决方案听起来像是你需要的。向下滚动到第一个答案的第二个解决方案(即,跳过使用
eval的解决方案)。或者,直接跳到第二个答案,它使用相同的解决方案(间接引用)。不过,您可能需要弄清楚如何修改它以使用关联数组。