나는 shrinkwrap.sh라는 이름으로 내 프로젝트 디렉토리에이 bash는 스크립트가 :bash 스크립트를 무한 루프에서 멈추는 방법은 무엇입니까?
update_package_json_changed_files() {
echo "> changed files"
git diff --cached --name-only | grep -x package.json
}
update_shrinkwrap_and_at_to_git_index() {
echo "> Updating npm-shrinkwrap.json and adding to current commit."
npm shrinkwrap
git add npm-shrinkwrap.json
}
if get_package_json_changed_files; then
update_shrinkwrap_and_at_to_git_index
fi
나는 다음과 같은 package.json에서이 스크립트를 실행하고 있습니다 :
"scripts": {
"shrinkwrap": "bin/shrinkwrap.sh"
}
나는 NPM 사전 설치 - 커밋을 시도하면 스크립트를 다음과 같이 실행합니다.
"pre-commit": ["shrinkwrap"]
스크립트를 실행하면 스크립트가 실행됩니다. 계속 달리기 때문에 아무 것도 멈출 수 없습니다. 나는 command + C, control + Z를 시도했다. 아무 일도 없었다. 이전에이 문제를 겪은 사람이 있습니까? 왜 그런 일이 일어나는거야?
nw shrinkwarp 앞에 sudo를 추가하면 루프가 멈추었습니다. 꺼내면 루프가 다시 시작됩니다. 왜 그럴까? –
@MaxDoung 귀하의 의견에 대한 답변을 편집했습니다. – VonC
두 가지 더 궁금한 점이 있습니다. 어디에서 바꿀 수 있습니까 (/ tmp/in_progress 터치). 또한이 무한 루프가 왜 일어나고 있는지에 대해 설명 할 수 있습니까? 나는 이것에 대해 거의 경험이 없다. 고마워. –