скрипт bash - попытка объединить две строки - неудача

скрипт bash - попытка объединить две строки - неудача

Я хочу написать скрипт, который берет имя текущей папки и добавляет к нему постфикс _default в конце.

Мой сценарий пока выглядит так:

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

echo $networkName

При запуске я получаю следующие ошибки:

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

Я уверен, что я что-то простое путаю, но я этого не вижу. Спасибо.

ПРАВКА 1

Я также попробовал это:

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

Но это просто возвращает

_по умолчанию

Теперь я вижу, что проблема в basedDir пуста. Когда я запускаю "pwd | awk -F/ '{print $NF}'" в командной строке, это работает. Но это явно не работает в этом файле скрипта.

решение1

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

Эта команда присвоит переменную baseDirстроке pwd, а затем передаст вывод этого присваивания (т.е. ничего) в awk, что ничего не сделает.

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

Эта команда попытается присвоить переменную networkNameвыводу команды baseDir(который не существует, отсюда и первая ошибка), объединенную с выводом команды '_default')(который не существует, отсюда и вторая ошибка).

echo $networkName

Поскольку предыдущая команда не сработала, эта команда не выведет ничего, кроме завершающего символа новой строки.

Я думаю, вы ищете вот это:

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

echo "$networkName"

Связанный контент