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을 두 개의 문자열로 나누고 백슬래시를 사용하여 작은따옴표를 삽입 '...'\''....'하거나 큰따옴표를 사용합니다 '...'"'"'....'. 이 문자열 사이에는 공백을 두지 마십시오.

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

아니요문자는 백슬래시가 아닌 작은따옴표 사이에서 해석됩니다(그래서 그렇게 할 수는 없습니다. 그러면 힌트가 echo 'Haru\'s Death'제공됩니다 (보통 ).PS2>

답변2

완전성을 위해 "..."에서 백슬래시를 사용하여 쉘이 계속 따르는 문자를 비활성화할 수 있습니다. 이는 백슬래시 자체, \큰따옴표 "달러 $백틱` 및 (쉘이 기록 확장을 지원하고 비활성화되지 않은 경우) bang 입니다 !. 그러나 (동의합니다) 여기에서는 작은 따옴표 접근 방식이 더 나을 것입니다.

관련 정보