Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash pg_backup.sh:“;没有这样的文件或目录;对于pg_backup.config_Bash_Postgresql_Shell_Backup_Dump - Fatal编程技术网

Bash pg_backup.sh:“;没有这样的文件或目录;对于pg_backup.config

Bash pg_backup.sh:“;没有这样的文件或目录;对于pg_backup.config,bash,postgresql,shell,backup,dump,Bash,Postgresql,Shell,Backup,Dump,为了创建postgres DB的备份,我下载了提供的备份脚本 我创建了一个pg_backup.config,它位于/etc中。将pg_backup.sh放入/usr/local/bin中。尝试运行脚本时,如下所示: $ pg_backup.sh -c /etc/pg_backup.config 。。。我收到以下错误消息: /usr/local/bin/pg_backup.sh: line 27: /usr/local/bin/pg_backup.config: No such file or

为了创建postgres DB的备份,我下载了提供的备份脚本

我创建了一个
pg_backup.config
,它位于
/etc
中。将
pg_backup.sh
放入
/usr/local/bin
中。尝试运行脚本时,如下所示:

$ pg_backup.sh -c /etc/pg_backup.config
。。。我收到以下错误消息:

/usr/local/bin/pg_backup.sh: line 27: /usr/local/bin/pg_backup.config: No such file or directory

我做错什么了吗?显然,脚本试图从
/usr/local/bin/pg_backup.config
加载配置,尽管我将
/etc/pg_backup.config
指定为配置输入。如何指定从何处加载配置?

该脚本似乎接受命令行上的配置文件,但也要求在二进制文件本身旁边存在一个配置文件(并以不太可靠的方式查找该位置)

剧本刚刚被打破

它要做的第一件事就是解析它的命令行选项(使用手动
while
循环)。这样做时,它会将它们从位置参数中删除(使用
shift
)。当没有更多的位置参数时(当
[$#-gt 0]
不再为真时),它停止该循环

在排空位置参数后,它立即再次检查位置参数的计数
如果[$#=0];那么
),并且不可避免地发现没有更多的位置参数时,它会尝试来源其默认配置文件


相反,
pg\u backup\u rotated.sh
脚本有一个更合理的机制来加载配置文件(尽管它仍然使用不太可靠的方法来查找默认配置文件的位置)。

没有注意到
pg\u backup\u rotated.sh
中的代码有所不同。我将坚持这一点,因为它似乎在我的情况下工作。谢谢你的详细解释!