URLを二重引用符で囲んでもwgetが失敗するのはなぜですか?

URLを二重引用符で囲んでもwgetが失敗するのはなぜですか?

ご希望のURLには大半のスペース、中括弧などが含まれているのでwget同封します。""通常はうまく機能しますが、次のURLを操作することはできません。

wget "http://xxxx/Sankarea - 6 - It`s Because I... Ran Into You (720p-100MB)[Commie][Daylighter].mkv"

それは出力する

-bash: command substitution: line 1: syntax error near unexpected token `('
-bash: command substitution: line 1: `s Because I... Ran Into You (720p-100MB)[Commie][Daylighter].mkv" 

どういう意味ですか?この問題を解決する方法はありますか?

答え1

一重引用符を試してください。

wget 'http://xxxx/Sankarea - 6 - It`s Because I... Ran Into You (720p-100MB)[Commie][Daylighter].mkv'

URL自体に一重引用符がある場合は、URLを2つの文字列に分割し、バックスラッシュを使用して一重引用符を挿入するか、二重引用符を'...'\''....'使用します'...'"'"'....'。この文字列の間にスペースを入れないでください。

$ echo 'Haru'\''s Death'
Haru's Death
$ echo 'Haru'"'"'s Death'
Haru's Death

いいえ文字はバックスラッシュではなく一重引用符の間で解釈されます(そのようにすることはできません。これでヒントが提供されecho 'Haru\'s Death'ます(通常)。PS2>

答え2

完全性のために、「...」でバックスラッシュを使用して、シェルが続く文字を無効にすることができます。これはバックスラッシュ自体、\二重引用符ドルバック"ティック$、および(シェルが履歴拡張をサポートして無効になっていない場合)、bangです!。しかし、(同意します)ここでは、単一引用符のアプローチがより良いでしょう。

関連情報