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 baseDir
a la cadena pwd
y 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 networkName
a 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"