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

하지만 그건 그냥 돌아오는 거야

_기본

이제 문제가 기반이라는 것을 알 수 있습니다.Dir은 비어 있습니다. 명령줄에서 "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"

관련 정보