我写了一个名为load_data.exp的期望脚本
#!/usr/bin/expect
spawn "osm2pgsql -s -l -d postgres -W -U postgres -H localhost -P 5432 --hstore /absolute/path/to/bruges_belgium.osm"
expect "Password:" {send "mysecretpassword"}
通过
更改访问权限chmod +x load_data.exp
通过
运行它./load_data.exp
文件肯定退出,它给了我错误
spawn osm2pgsql -s -l -d postgres -W -U postgres -H localhost -P 5432 --hstore /absolute/path/to/bruges_belgium.osm
couldn't execute "osm2pgsql -s -l -d postgres -W -U postgres -H localhost -P 5432 --hstore /absolute/path/to/bruges_belgium.osm": no such file or directory
while executing
"spawn "osm2pgsql -s -l -d postgres -W -U postgres -H localhost -P 5432 --hstore /absolute/path/to/bruges_belgium.osm""
(file "./load_data.exp" line 6)
安装osm2pgsql并可以在终端中直接运行以下句子
osm2pgsql -s -l -d postgres -W -U postgres -H localhost -P 5432 --hstore /absolute/path/to/bruges_belgium.osm
所以spawn有问题,我想
答案 0 :(得分:1)
尝试指定osm2pgsql的绝对路径(通过命令获取' which osm2pgsql
')
答案 1 :(得分:1)
正如错误所示,它试图找到一个名为osm2pgsql
的程序,但是一个名为osm2pgsql -s -l -d postgres -W -U postgres -H localhost -P 5432 --hstore /absolute/path/to/bruges_belgium.osm
的程序,包括所有空格和短划线作为可执行文件名的一部分。从spawn命令中删除引号:
spawn osm2pgsql -s -l -d postgres -W -U postgres -H localhost -P 5432 --hstore /absolute/path/to/bruges_belgium.osm