script bash – tentando concatenar duas strings – falhando

script bash – tentando concatenar duas strings – falhando

Quero escrever um script que pegue o nome da pasta atual e adicione o postfix _default no final.

Meu script até agora está assim:

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

echo $networkName

Quando executo isso, recebo os seguintes erros:

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

Tenho certeza de que é algo simples que estou bagunçando, mas não consigo ver. Obrigado.

EDITAR 1

Eu também tentei isso:

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

Mas isso apenas retorna

_padrão

Vejo agora que o problema é basedDir está em branco. Quando executo "pwd | awk -F/ '{print $NF}'" na linha de comando, ele funciona. Mas claramente não está funcionando neste arquivo de script.

Responder1

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

Este comando atribuirá a variável baseDirà string pwde, em seguida, canalizará a saída dessa atribuição (ou seja, nada) para awk, o que não fará nada.

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

Este comando tentará atribuir a variável networkNameà saída do comando baseDir(que não existe, daí o primeiro erro) concatenada à saída do comando '_default')(que não existe, daí o segundo erro).

echo $networkName

Como o comando anterior não funcionou, isso não produziria nada além da nova linha final.

Acho que o que você está procurando é isso:

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

echo "$networkName"

informação relacionada