jq:1编译错误jq:错误:在<top-level>,第1行中未定义schedule / 0:.Christchurch.bus-schedule.from [“ Weekday”] | =。 + [“ 1646”]

时间:2019-05-09 03:01:18

标签: reactjs compilation jq yarnpkg toplevel

我有一个React应用程序,它使用.sh文件来生成应用程序的一部分。但是我遇到了一个错误,该错误阻止了应用程序读取数据文件。

我研究过版本控制,.sh文件emap.sh

中可能的语法更改

这是.sh文件

#!/bin/bash
object='{}'

find 'public/data' -type f -name '*.csv' | while read -r filename;
do
    filename=$(echo "$filename" | sed 's/public\/data\///' | sed 's/ /\//')
    city=$(echo "$filename" | cut -d'/' -f1)
    medium=$(echo "$filename" | cut -d'/' -f2)
    direction=$(echo "$filename" | cut -d'/' -f3)
    date=$(echo "$filename" | cut -d'/' -f4)
    time=$(echo "$filename" | cut -d'/' -f5| head -c-5)
    object=$(echo $object | jq -c ".$city.$medium.$direction[\"$date\"] |= . + [\"$time\"]")
    echo $object > public/available.json
done

应该成功,以便在我们对应用程序进行处理时,它显示已读取数据,但是使用需要处理的信息,我们得到的页面中没有数据。

1 个答案:

答案 0 :(得分:1)

shell变量应以更可靠的方式传递给jq,例如遵循以下原则:


jq -c --arg city "$city" \
      --arg medium "$medium" \
      --arg direction "$direction" \
      --arg date "$date" \
      --arg time "$time" \
   '.[$city][$medium][$direction][$date] += [$time]'

但是,正如@OguzIsmail指出的那样,最好仅使用findjq来避免一切麻烦。