현재 폴더 이름을 사용하고 끝에 _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"