2013-05-31 92 views
1

最初我以爲這是一個數據庫管理問題,但我認爲這些行已變得有點模糊。我要在這裏嚴格遵守腳本問題。如果您想了解更多的背景信息,我在這裏張貼這對ServerFault:Linux bash腳本無法正常運行,但在命令行運行時一切正常

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

我的腳本

我提煉我的原始腳本到這讓事情變得簡單。這是我在一個名爲.SH pg_dump_script

/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: 
+0

這是實際的錯誤信息嗎?我不確定什麼是「核心」。 – lurker

+0

是的,這是實際的錯誤信息複製和粘貼。我知道這似乎很奇怪。我真的想上傳一個打印屏幕,因爲當我第一次看到它時,我認爲我的眼睛在對我玩弄技巧。 – enigmasck

+0

看起來好像一條消息被另一條消息覆蓋。你可能會在'.sh'腳本中的'pg_dump'調用之後顯示下一行或兩行嗎?或者更好的是,在調用之後,移除'.sh'中的所有內容並再次運行腳本,看看是否收到「乾淨」的錯誤消息。 – lurker

回答

2

運行dos2unix.sh文件轉換爲正確的UN * X線的結局,它應該工作:

dos2unix pg_dump_script.sh 

使用vi進行編輯時,請檢查以確保它不在dos編輯模式下。如果從一個帶有CR/LF的原始文本文件開始,vi將自動進入dos模式,除非另有說明。