これはフォルダ内のファイルを.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
、ファイル名が空白などの特殊文字で混乱するだけです。