script bash - intentando concatenar dos cadenas - fallando

script bash - intentando concatenar dos cadenas - fallando

Quiero escribir un script que tome el nombre de la carpeta actual y le agregue el sufijo _default al final.

Mi script hasta ahora se ve así:

#!/usr/bin/env bash
baseDir=pwd | awk -F/ '{print $NF}'
networkName=$(baseDir)$('_default')

echo $networkName

Cuando ejecuto esto me sale los siguientes errores:

codebrews@mymachine:/docker-local$ ./test.sh
./test.sh: line 3: baseDir: command not found
./test.sh: line 3: _default: command not found

Seguro que es algo sencillo que estoy arruinando pero no logro verlo. Gracias.

EDITAR 1

También probé esto:

#!/usr/bin/env bash
baseDir=pwd | awk -F/ '{print $NF}'
networkName=$($baseDir)_default
echo $networkName

Pero eso simplemente regresa

_por defecto

Ahora veo que el problema es que el directorio basado está en blanco. Cuando ejecuto "pwd | awk -F/ '{print $NF}'" en la línea de comando, funciona. Pero claramente no funciona en este archivo de script.

Respuesta1

baseDir=pwd | awk -F/ '{print $NF}'

Este comando asignará la variable baseDira la cadena pwdy luego canalizará la salida de esa asignación (es decir, nada) a awk, lo que no hará nada.

networkName=$(baseDir)$('_default')

Este comando intentará asignar la variable networkNamea la salida del comando baseDir(que no existe, de ahí el primer error) concatenada a la salida del comando '_default')(que no existe, de ahí el segundo error).

echo $networkName

Debido a que el comando anterior no funcionó, esto no generaría nada más que la nueva línea final.

Creo que lo que estás buscando es esto:

#!/usr/bin/env bash
baseDir="$(pwd | awk -F/ '{print $NF}')"
networkName="${baseDir}_default"

echo "$networkName"

información relacionada