쉘 스크립트에서 실행 중인 명령을 찾을 수 없습니다.

쉘 스크립트에서 실행 중인 명령을 찾을 수 없습니다.

저는 Windows에서 git-bash를 실행하고 있습니다. 제가 직면한 문제는 Windows보다 NIX와 더 관련이 있는 것 같습니다. 쉘 스크립트가 있습니다.

build.sh

myProject="../myProject/"
build="gulp build"

cd "${myProject}"
pwd
"${build}"

이 스크립트를 실행하면 오류가 발생합니다.

gulp 빌드: 명령을 찾을 수 없습니다

쉘에서 직접 "gulp build"를 실행할 때 동일한 명령을 수동으로 실행하면 모든 것이 잘 작동합니다. 다음을 통해 스크립트를 실행하려고 합니다.

. build.sh그리고 그냥build.sh

어느 쪽이든 동일한 오류가 발생합니다. gulp/npm에 액세스하여 스크립트를 실행하는 방법은 무엇입니까? 스크립트를 받았는데 왜 실패하나요?

답변1

인용은 "${build}"단어 분할을 방지하므로 인수 를 사용하여 검색하는 대신 이름에 공백이 있는 실행 파일을 검색하는 쓰기(따옴표 사용 ) 와 "gulp build"동일한 효과를 갖습니다 .gulp buildgulp buildgulpbuild

마지막으로 스크립트의 마지막 줄은 다음과 같아야 합니다.

${build}

답변2

인용하지 마십시오 "${build}". gulp build이 경우 명령을 예상하고 (내부에 공백 포함) 그러한 명령이 존재하지 않는다고 올바르게 보고합니다.

그냥 가서 해보세요 ${build}. 그런 다음 쉘은 이를 명령 및 인수로 처리합니다.

myProject="../myProject/"
build="gulp build"

cd "${myProject}"
pwd
${build}

관련 정보