2012-06-22 62 views
0

在我的Centos 6.2我有這樣的bash腳本:Wget的在bash腳本與406不接受錯誤

[le_me]$ cat get.nb 
#! /bin/bash 
/usr/bin/wget -O /var/www/html/leFile.xml http://www.leSite.com/leFeed.xml  

[le_me]$ source getFeeds.nb 
: command not found 
--2012-06-22 12:46:18-- http://www.leSite.com/leFeed.xml%0D 
Resolving www.leSite.com... 1.2.3.4 
Connecting to www.leSite.com|1.2.3.4|:80... connected. 
HTTP request sent, awaiting response... 406 Not Acceptable 
2012-06-22 12:46:18 ERROR 406: Not Acceptable. 

我奇怪的是,當我在運行此命令

/usr/bin/wget -O /var/www/html/leFile.xml http://www.leSite.com/leFeed.xml 

控制檯,一切工作正常,文件下載沒有問題。

我做了谷歌這件事,我注意到這個%0D這應該是一個carrige回報的性格,我試圖把另一個空間,像這樣的鏈接後:http://www.leSite.com/leFeed.xml[spaceChar]

,我得到的文件下載,但我擔心找不到命令輸出,並獲取到底該carrige回報(其中OFC我知道這是因爲空間的,但至少現在我下載我本來想的文件):

[le_me]$ source get.nb 
: command not found 
--2012-06-22 13:05:26-- http://www.leSite.com/leFeed.xml 
Resolving www.leSite.com... 2.17.249.51 
Connecting to www.leSite.com|2.17.249.51|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 35671435 (34M) [application/atom+xml] 
Saving to: 「/var/www/html/leFile.xml」 

100%[=================================>] 35,671,435 37.2M/s in 0.9s 

2012-06-22 13:05:27 (37.2 MB/s) - 「/var/www/html/leFile.xml」 saved [35671435/35671435] 

--2012-06-22 13:05:27-- http://%0D/ 
Resolving \r... failed: Name or service not known. 
wget: unable to resolve host address 「\r」 
FINISHED --2012-06-22 13:05:27-- 
Downloaded: 1 files, 34M in 0.9s (37.2 MB/s) 

任何人都可以提供一些線索請點亮這個?

回答

2

您的腳本文件顯然具有DOS風格的行,並且回車符被解釋爲命令行中的另一個字符。如果URL後面沒有空格,則會將其解釋爲URL的最後一個字符;如果有空間,則將其解釋爲單獨的單字符參數。

您應該使用UNIX樣式行保存您的腳本文件。你怎麼做取決於你的編輯器。

+0

你說得對。我最初在一個Windows盒子上創建了一個文件,但是之後我在服務器上使用VIM編輯了它,但似乎仍然導致問題,所以我使用VIM直接在服務器上創建了一個新文件,並在其中鍵入了所有命令從一開始,現在一切正常。唷!謝謝! – Nikola

+0

好的。有幾次我自己有這個問題,其結果總是誤導性的:) PS。在vim中:打開文件,「:set ff = unix」,然後是「:write」。 – bcelary

0

我建議引用網址。

/usr/bin/wget -O /var/www/html/leFile.xml 'http://www.leSite.com/leFeed.xml' 
+0

引述URL的替代並沒有幫助不幸 – Nikola

0

: command not found 

錯誤表明存在HTTP一個問題://部分。根據經驗,我總是在命令行中引用這些URL。你經常在那裏有bash/shell特殊字符。

在我的情況下,這個命令適用於我沒有406問題(與一些真正的http地址)。您應該複製/粘貼確切的地址。它可能包含導致它的東西。

+0

引述URL沒有幫助不幸 – Nikola

0

如果沒有其他的答案的工作,嘗試wget的

curl -o /var/www/html/leFile.xml 'http://www.leSite.com/leFeed.xml'