【发布时间】:2017-08-26 09:38:11
【问题描述】:
我正在尝试将用户输入与此处的文档进行比较,以比较输入是否大于或小于 2 个数字(日期),如果是,则打印第一列。 我的文件如下所示:
Earth,19480210,19490228
Earth,19490229,19500216
Metal,19500217,19510205
用户可以输入 20100215 作为日期。这是我的 while 循环,它使用包含在 while 读取中的 2 个变量进行比较
while IFS=, read -r term start end; do
if [[ $query -ge $start && $query -le $end ]];then
echo $term
fi
echo $query
exit
done << EOF
$(cat chzod)
EOF
输出如下:你的生肖是:水
火
地球
我不知道为什么 while 循环会生成多个元素,以及是否有任何可能的解决方案。 谢谢, 基兰
【问题讨论】:
-
有什么问题?
-
我有点迷茫,不知道为什么会输出多个元素。我想知道 while 循环是否有效,或者我是否应该找到另一个解决方案。
-
因为
echo $query. -
您正在提交 UUOC(不必要地使用 Cat)。每当您发现自己在执行
cat ...时实际上并未连接 两个(或更多)文件时,它可能是一个UUOC。更好的是,while ...; do ... done <chzod(假设chzod是您的数据文件)
标签: bash csv while-loop heredoc