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 pwd
e, 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"