/bin/sh: 1: Error de sintaxis: cadena entrecomillada sin terminar cuando se usa el nombre base

/bin/sh: 1: Error de sintaxis: cadena entrecomillada sin terminar cuando se usa el nombre base

ejemplo de código: my PWD = /aa/bb/cc/dd

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

La variable dir genera resultados correctamente:/aa/bb/cc

variable de salida deseada:cc

error que recibo:/bin/sh: 1: Syntax error: Unterminated quoted string

Probé diferentes combinaciones de citas y otras cosas como estas soluciones sugeridas:https://stackoverflow.com/questions/22401091/bash-variable-substitution-vs-dirname-and-basename/22402242yhttps://unix.stackexchange.com/questions/253524/dirname-and-basename-vs-parameter-expansion

Respuesta1

El siguiente código funciona para mí:

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

Respuesta2

En lugar de "$(PWD)", querrás "${PWD}". El primero intenta ejecutar el comando PWD, el segundo se expande al valor de la variable PWD.

información relacionada