Versuch interpretiert werden, auf die neueste Version von SBT GitHub herunterladen:Ergebnis bash Ausdruck nicht als String
version="$(curl -vsLk https://github.com/sbt/sbt/releases/latest 2>&1 | grep "< Location" | rev | cut -d'/' -f1 | rev)"
version
wird auf v1.1.0-RC2
Dann versucht, die TAR herunterladen gz Paket:
curl -fsSLk "https://github.com/sbt/sbt/archive/${version}.tar.gz" | tar xvfz - -C /home/myuser
jedoch:
https://github.com/sbt/sbt/archive/v1.1.0-RC2.tar.gz
Irgendwie ist die Versionszeichenfolge als Befehl interpretiert wird (?!), was zu:
.tar.gzttps://github.com/sbt/sbt/archive/v1.1.0-RC2
Wenn ich manuell version="v1.1.0-RC2"
gesetzt das passiert nicht.
Vielen Dank im Voraus!
Es ist absolut Teil des Strings - es ist nur eine Zeichenfolge, die eine Sequenz enthält, die den Cursor auf der Vorderseite der Linie zurückschickt, so, wenn es gedruckt, es * sieht so aus * als würde es den Befehl überschreiben. Bedeutet nicht, dass so etwas tatsächlich passiert. –
Danke @BenjaminW.! Hinzufügen eines '| sed 's/\ r // g' 'am ende fixierte es. – vivri
BTW, dies ist buchstäblich die allererste Sache in der "vor der Frage über problematischen Code" Abschnitt in der ['bash' Tag Wiki] (https://StackOverflow.com/Tags/Bash/info). –