我正在努力使这项工作
#!/usr/bin/expect
spawn "(psql blabla \"blabla sql;\" &> /dev/null) && (pg_restore -d xx my_file.sql &> /dev/null)"
expect "Password for user my_base: "
send "v"
但我总是得到:
spawn (psql blabla "blabla sql;" &> /dev/null) && (pg_restore -d xx my_file.sql &> /dev/null)
couldn't execute "(psql blabla "blabla sql;" &> /dev/null) && (pg_restore -d xx my_file.sql &> /dev/null)": no such file or directory
我错过了什么?
1)不要将
spawn
参数放在引号中,以及 2)spawn 不理解 shell 语法,你需要显式地生成一个 shell这使用大括号,它是 shell 的单引号的 expect/Tcl 等价物。