envsubst 与 ogr2ogr 外部 .sql 文件
envsubst with ogr2ogr external .sql file
我正在尝试将 envsubst 命令与作为选项传递给 ogr2ogr 的外部 sql 文件结合使用,但无法完全实现。
export STOP_NAME=Park;
ogr2ogr \
-f geojson \
/vsistdout/ \
stops.csv \
-dialect sqlite \
-sql envsubst < @stop_geo.sql
其中 stop_geo.sql 是:
SELECT *
FROM stops
WHERE stop_name = '$STOP_NAME'
此错误为:
Warning 1: layer names ignored in combination with -sql.
ERROR 1: In ExecuteSQL(): sqlite3_prepare_v2(envsubst):
near "envsubst": syntax error
有什么方法可以在 ogr2ogr -sql 命令选项中替换外部 sql 文件中的环境变量吗?
envsubst 命令需要包含在带引号的命令替换中(即“$()”)。无需使用 ogr2ogr sql documentation 中提到的 @ 语法,只需使用常见的 < 运算符即可读取它。
export STOP_NAME=Park;
ogr2ogr \
-f geojson \
/vsistdout/ \
stops.csv \
-dialect sqlite \
-sql "$(envsubst < stop_geo.sql)"
我正在尝试将 envsubst 命令与作为选项传递给 ogr2ogr 的外部 sql 文件结合使用,但无法完全实现。
export STOP_NAME=Park;
ogr2ogr \
-f geojson \
/vsistdout/ \
stops.csv \
-dialect sqlite \
-sql envsubst < @stop_geo.sql
其中 stop_geo.sql 是:
SELECT *
FROM stops
WHERE stop_name = '$STOP_NAME'
此错误为:
Warning 1: layer names ignored in combination with -sql.
ERROR 1: In ExecuteSQL(): sqlite3_prepare_v2(envsubst):
near "envsubst": syntax error
有什么方法可以在 ogr2ogr -sql 命令选项中替换外部 sql 文件中的环境变量吗?
envsubst 命令需要包含在带引号的命令替换中(即“$()”)。无需使用 ogr2ogr sql documentation 中提到的 @ 语法,只需使用常见的 < 运算符即可读取它。
export STOP_NAME=Park;
ogr2ogr \
-f geojson \
/vsistdout/ \
stops.csv \
-dialect sqlite \
-sql "$(envsubst < stop_geo.sql)"