youtube-dl
Bash 스크립트에서 명령을 실행 하려고 합니다 . 스크립트는 다음과 같습니다:-
youtube="youtube-dl -prefer-ffmpeg -o $title.%(ext)s ${filename}"
eval $youtube
하지만 다음과 같은 오류가 발생합니다.-
syntax error near unexpected token
('
내가 여기서 무엇을 놓치고 있는 걸까요?
답변1
괄호는 쉘에만 적용되며 따옴표로 묶어야 합니다.
$ title=foo; filename=bar
$ youtube="youtube-dl -prefer-ffmpeg -o $title.%(ext)s ${filename}"
$ eval echo $youtube
bash: syntax error near unexpected token '('
$ youtube="youtube-dl -prefer-ffmpeg -o $title.%\(ext\)s ${filename}"
$ eval echo $youtube
youtube-dl -prefer-ffmpeg -o foo.%(ext)s bar
또는 다음과 같이 문자열 변수 대신 함수에 명령을 저장하는 것이 더 좋습니다.
ydl() {
youtube-dl -prefer-ffmpeg -o "$1.%(ext)s" "$2"
}
ydl "$title" "$filename"
eval
( 물론 명령이 실행될 때가 아니라 문자열이 설정될 때 메서드가 계산을 수행한다는 점은 제외합니다 . title
)filename