0

Centos 6.2には、次のbashスクリプトがあります。

[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がキャリッジリターンキャラクターであるはずであることに気づきました、そして私はそのようにリンクの後に別のスペースを置いてみました:http://www.leSite.com/leFeed.xml[spaceChar]

ファイルをダウンロードしましたが、コマンドが出力を見つけられず、最後にそのキャリッジリターンをフェッチすることを心配しています(スペースのせいであることがわかりますが、少なくとも最初に必要なファイルをダウンロードしました):

[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)

誰かがこれに光を当てることができますか?

4

4 に答える 4

2

スクリプト ファイルには明らかに DOS スタイルの行が含まれており、キャリッジ リターン文字はコマンド ライン内の単なる別の文字として解釈されます。URL の後にスペースがない場合は、URL の最後の文字として解釈されます。スペースがある場合は、別の 1 文字のパラメーターとして解釈されます。

スクリプト ファイルは UNIX スタイルの行で保存する必要があります。その方法は、エディターによって異なります。

于 2012-06-22T12:42:11.243 に答える
0

I'd suggest to quote the URL.

/usr/bin/wget -O /var/www/html/leFile.xml 'http://www.leSite.com/leFeed.xml'
于 2012-06-22T12:25:18.393 に答える
0

: command not found

エラーは、http:// の部分に問題があることを示しています。経験則として、コマンドラインで使用するときは常にこれらの URL を引用します。多くの場合、そこには bash/shell の特殊文字が含まれています。

私の場合、このコマンドは 406 問題なしで機能します (実際の http アドレスを使用)。正確なアドレスをコピーして貼り付ける必要があります。原因となる何かが含まれている可能性があります。

于 2012-06-22T12:32:24.977 に答える