Көбірек

Қабық сценарийін экспорттау ogr2ogr

Қабық сценарийін экспорттау ogr2ogr


Мен postgis деректерін geojsonға экспорттау үшін қарапайым сценарий жазамын. Ogr2ogr пәрмені жақсы жұмыс істейді, бірақ мен параметрлерді жіберген кезде проблемалар туындады.

#!/bin/bash echo 'ел кодын енгізіңіз' экспорттық жаңғырықты оқыңыз '$ экспорт деректерін экспорттау' ogr2ogr -f GeoJSON export.geojson PG: 'dbname = alamedaok user = postgres host = localhost' -sql «SELECT id_alameda, pais, geom FROM poblaciones_def WHERE pais = '$ export' «

Мәселе мынада келедіҚАЙДА pais = **долларлық экспорт"**Мен sql сөйлеміндегі айнымалыны қалай «кірістіруді» білмеймін. Мен '$' және 'көмегімен тырыстым, сәттілік жоқ.

Кез келген көмек?


Bash цитата кейіпкерлеріне қатысты','және". Айнымалы мәнді жолға ауыстыру үшін қос тырнақшаларды қолданыңыз«керемет $ VAR». Сондай-ақ, Bash-те конвенция-бұл айнымалылар үлкен регистр, мен оны қолданудан аулақпынэкспорттауайнымалы атау ретінде, себебі ол қоршаған орта айнымалыларына арналған команда. Мына өзгерістерді қарастырыңыз:

#!/bin/bash read -p «ел кодын енгізіңіз:» CODE echo «деректерді $ CODE -ден экспорттау» SRC = «PG: 'dbname = alamedaok user = postgres host = localhost'» SQL = «SE_ id_alameda, pais, geom FROM poblaciones_def WHERE pais = $ CODE «ogr2ogr -f GeoJSON code_ $ CODE.geojson $ SRC -sql $ SQL

Сондай -ақ, соңғы пәрменді префикспен қосуға боладыжаңғырықегер оны жөндеу қажет болса, ол не қолданатынын көру үшін.


Келесі әрекеттерді орындап көріңіз:

#!/bin/bash read -p 'Ел кодын енгізіңіз:' EXP echo «деректерді $ EXP -ден экспорттау» echo ogr2ogr -f GeoJSON export.geojson PG: 'dbname = alamedaok user = postgres host = localhost' -sql «SE_ id_alameda , pais, geom FROM poblaciones_def WHERE pais = '$ EXP' «

Ескертулер:

  • оқушақыруды орнату үшін -p параметрін қолданады
  • Сіз айнымалы мәнді қоршау үшін SQL жолында backquotes («) қолдандыңыз, ол команданы алмастыру ретінде түсіндіріледі. Оның орнына бір тырнақшаны пайдаланыңыз (»).
  • Жалғыз тырнақшалар («) қос тырнақшаға ұқсас жұмыс істейді, бірақ айнымалыларға сілтеме жасауға рұқсат етпейді, себебі $ арнайы мәні өшірулі (ref). SQL жолындағы жалғыз тырнақшалар тырнақша ретінде қарастырылмайды, себебі олар бір бөлігі болып табылады. қос тырнақшалы жол.