Linux bash脚本无法正常运行,但在命令行运行时一切正常

时间:2013-05-31 12:51:59

标签: linux bash rhel5 pg-dump

最初我认为这是一个数据库管理问题,但我认为线条变得有点模糊。我将在这里严格遵守脚本问题。如果您想了解更多背景信息,请在此处将其发布在ServerFault上:

https://serverfault.com/questions/511780/postgresql-pgdump-script-on-rhel5-failed-fe-sendauth-no-password-supplieddat

我的剧本

我将原始脚本提炼到此处以简化操作。这就是我在名为 pg_dump_script 的.sh中所拥有的:

/home/myusername/lappstack-1.2-5/postgresql/bin/pg_dump --host=127.0.0.1 --port=5433 --username=myusername mydbname

当我运行时,我收到以下错误:

$ bash pg_dump_script.sh
Password:
" does not exist  database "corenection to database "mydbname

我可以在脚本文件中复制并粘贴该行,并从命令行运行它,一切正常。

以下是脚本文件的权限:

-rwxr-xr-x

I used chmod 755

我不确定我在这里做错了什么?我不是脚本专家,但我想如果我可以从控制台运行它,它当然可以从脚本中运行。如果需要任何信息,请告诉我。我想保持这个简单。

更新

我删除了所有参数。这是.sh

中的所有文字
/home/myusername/lappstack-1.2-5/postgresql/bin/pg_dump

我收到此错误:

    $ ./pg_dump_script.sh
: No such file or directoryine 1: /home/myusername/lappstack-1.2-5/postgresql/bin/pg_dump
: command not foundst.sh: line 2:

1 个答案:

答案 0 :(得分:2)

dos2unix文件上运行.sh以转换为正确的UN * X行结尾,它应该有效:

dos2unix pg_dump_script.sh

使用vi进行编辑时,请检查以确保其未处于dos编辑模式。如果您从包含CR / LF的原始文本文件开始,vi将自动进入dos模式,除非您另有说明。