bash의 변수에 URL을 저장합니다. 실제 파일 경로와는 아무런 관련이 없지만 파일 이름이 너무 깁니다.라는 오류가 계속 발생합니다.
bash에게 파일 이름 검색을 무시하고 긴 URL 문자열을 변수에 저장하도록 지시하려면 어떻게 해야 합니까?
파일 이름을 사용하지 않습니다. 겉보기에 관련없어 보이는 오류가 발생하는 이유를 설명하고 안내해 줄 수 있는 사람이 있습니까?
#!/bin/bash
video=""
$video=$(youtube-dl -g -f bestvideo https://youtubeurl)
echo $video
$ 배쉬 script.sh
오류: 파일 이름이 너무 깁니다.
편집: 죄송합니다. 명령 앞에 $()를 사용했습니다. stackexchange 편집기에 오타가 있었습니다. 위에서 수정했습니다. echo "$video" 를 사용해 보세요. 여전히 같은 오류가 발생합니다. Linux용 Windows 하위 시스템에서 우분투를 사용하고 있습니다.
답변1
스크립트에 몇 가지 문제가 있습니다.
$video=youtube-dl -g -f bestvideo https://youtubeurl
이는 유효한 구문이 아닙니다. 변수 할당은 다음으로 시작할 수 없습니다 $
(이는 일부 다른 언어에서 일반적입니다). 또, 꼭 사용해 보고 싶은 것 같군요.명령 대체거기:
video=$(youtube-dl -g -f bestvideo https://youtubeurl)
또한, echo할 때 $video
인용해야 합니다(변수를 사용할 때 인용해야 하는 것처럼).거의 모든 다른 시나리오에서):
echo "$video"
video
마지막으로, 스크립트 시작 부분에 빈 매개변수를 설정할 필요는 없습니다 . 하지만 이로 인해 문제가 발생하지는 않습니다.
스크립트를 사용해 보세요.
#!/bin/bash
video=$(youtube-dl -g -f bestvideo https://youtubeurl)
echo "$video"