/bin/sh: 1: Syntaxfehler: Nicht abgeschlossene Zeichenfolge in Anführungszeichen bei Verwendung des Basisnamens

/bin/sh: 1: Syntaxfehler: Nicht abgeschlossene Zeichenfolge in Anführungszeichen bei Verwendung des Basisnamens

Codebeispiel: my PWD = /aa/bb/cc/dd

dir= `dirname "$(PWD)"`
output = `basename "${dir}"`

Die Variable „dir“ gibt Folgendes korrekt aus:/aa/bb/cc

gewünschte Ausgabevariable:cc

Fehler, den ich bekomme:/bin/sh: 1: Syntax error: Unterminated quoted string

Ich habe verschiedene Anführungszeichenkombinationen und andere Dinge wie diese vorgeschlagenen Lösungen ausprobiert:https://stackoverflow.com/questions/22401091/bash-variable-substitution-vs-dirname-and-basename/22402242Undhttps://unix.stackexchange.com/questions/253524/dirname-and-basename-vs-parameter-expansion

Antwort1

Der folgende Code funktioniert bei mir:

dir1=`dirname "$PWD"`
output=`basename "$dir1"`

Antwort2

Anstelle von "$(PWD)"möchten Sie "${PWD}". Ersteres versucht, den Befehl PWD auszuführen, letzteres erweitert ihn um den Wert der Variablen PWD.

verwandte Informationen