Bash &引用;检索当前目录时出错";在sudo下运行psql命令
我试图从bash脚本创建一个postgresql数据库+用户。 看起来是这样的:Bash &引用;检索当前目录时出错";在sudo下运行psql命令,bash,postgresql,sudo,Bash,Postgresql,Sudo,我试图从bash脚本创建一个postgresql数据库+用户。 看起来是这样的: #!/usr/bin/env bash echo ' Create DBs' sudo -u postgres createdb -E 'utf-8' -l en_US.utf8 -T template0 testdb echo ' Create User' sudo -u postgres psql -c "create role bert with login password 'pass';" echo '
#!/usr/bin/env bash
echo ' Create DBs'
sudo -u postgres createdb -E 'utf-8' -l en_US.utf8 -T template0 testdb
echo ' Create User'
sudo -u postgres psql -c "create role bert with login password 'pass';"
echo ' alter permissions'
sudo -u postgres psql -c "alter database testdb owner to bert;"
不幸的是,我遇到了以下错误:
==> default: Create DBs
==> default: could not identify current directory: No such file or directory
==> default: Create User
==> default: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
==> default: CREATE ROLE
==> default: alter permissions
==> default: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
如果有人能解释出哪里出了问题,以及如何解决getcwd错误,我将非常感激
谢谢 您的脚本是从某个地方运行的(例如
/root
--或者可能是以前删除的临时目录),postgres
用户无权访问当前工作目录
这些消息实际上是无害的(除非您正在调用依赖于$PWD
或类似变量或命令的脚本),但如果您想避免这些消息,请将目录更改为某个特定位置,并且postgres
用户可以访问该位置。例如,把这行:
cd /
…在脚本的顶部,就在shebang下。在VM Vagrant/Homestead中运行psql时,我遇到了这个问题,在这个问题中,我在本地机器上使用了一个目录映射,然后不得不删除/替换整个目录。在候机楼,我懒得用cd。。然后cd文件夹再次出现,所以出现“以前删除过的目录”的情况。