원하는 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 입니다 !
. 그러나 (동의합니다) 여기에서는 작은 따옴표 접근 방식이 더 나을 것입니다.