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"

관련 정보