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