이것은 폴더에서 .tab
파일을 찾고 이를 사용하여 가져오도록 되어 있지만 ogr2ogr
올바른 지원으로 인해 실패하는 스크립트입니다.
for i in $( ls *.tab )
do
echo item: $i
ogr2ogr -f PostgreSQL -s_srs EPSG:21781 -t_srs EPSG:4326 -overwrite \
-nln $TBL_NAME PG:'"host=localhost user='$DBUSER' dbname='$DBNAME'"' $i
done
ogr2ogr
이 부분을 이런 식으로 실행 하려면 명령줄이 필요합니다 .
ogr2ogr -f "PostgreSQL" -s_srs "EPSG:21781" -t_srs "EPSG:4326" -overwrite \
-nln "geom_tour" PG:"host=localhost user=postgres dbname=gis" DMC_34093.tab
답변1
해야 한다:
for i in *.tab
do
echo item: $i
ogr2ogr -f "PostgreSQL" -s_srs "EPSG:21781" -t_srs "EPSG:4326" -overwrite -nln "$TBL_NAME" PG:"host=localhost user=\'${DBUSER}\' dbname=\'${DBNAME}\'" "$i"
done
쉘이 내부적으로 변수를 확장할 수 있도록 하려면 큰따옴표를 사용해야 합니다 ${DBUSER}
.
for i in *.tab
대신 주의를 기울이십시오 .출력을 구문 분석하지 않습니다.for i in $(ls *.tab)
ls
, 파일 이름이 공백 및 기타 특수 문자로 엉망이 되는 것뿐입니다.