Ich speichere eine URL in einer Variable in Bash. Das hat nichts mit echten Dateipfaden zu tun, aber ich erhalte immer wieder den Fehler „Dateiname zu lang“.
Wie weise ich Bash an, die Suche nach Dateinamen zu ignorieren und nur die lange URL-Zeichenfolge in der Variablen zu speichern?
Ich verwende keinen Dateinamen. Kann mir bitte jemand erklären, warum ich diesen scheinbar irrelevanten Fehler erhalte?
#!/bin/bash
video=""
$video=$(youtube-dl -g -f bestvideo https://youtubeurl)
echo $video
$ Bash-Skript.sh
Fehler: Dateiname zu lang
Bearbeiten: Entschuldigung, ich habe vor dem Befehl $( ) verwendet. Ich habe es hier im Stackexchange-Editor falsch eingegeben. Habe es oben korrigiert. Habe versucht, echo "$video" zu verwenden. Ich bekomme immer noch denselben Fehler. Ich verwende Ubuntu auf dem Windows-Subsystem für Linux
Antwort1
Sie haben einige Probleme mit Ihrem Skript:
$video=youtube-dl -g -f bestvideo https://youtubeurl
Dies ist keine gültige Syntax. Variablenzuweisungen können nicht mit beginnen $
(wie es in einigen anderen Sprachen üblich ist). Außerdem scheint es, als ob Sie tatsächlich verwenden möchtenBefehlsersetzungDort:
video=$(youtube-dl -g -f bestvideo https://youtubeurl)
Auch wenn Sie echoen, $video
sollten Sie es in Anführungszeichen setzen (ebenso wie bei der Verwendung von Variablenin fast jedem anderen Szenario):
echo "$video"
video
Schließlich ist es nicht notwendig , am Anfang Ihres Skripts einen leeren Parameter festzulegen, obwohl dies keine Probleme verursachen würde.
Probieren Sie Ihr Skript wie folgt aus:
#!/bin/bash
video=$(youtube-dl -g -f bestvideo https://youtubeurl)
echo "$video"