설치했고 nvm
내 파일에 추가되었습니다./home/www-data/.bashrc
전화가 nvm
작동합니다.
bash
nvm
공장
하지만
$ bash -c nvm
bash: nvm: command not found
작동하지 않습니다.
rcfile을 지정할 때도 마찬가지입니다.
$ bash --rcfile /home/www-data/.bashrc -c "nvm"
bash: nvm: command not found
왜 그런 겁니까?
최종 결과에서는 RoboFile exec() 명령에서 nvm을 사용하고 실제 스크립트가 아닌 bash 함수이기 bash -c
때문에 이를 래핑하려고 했습니다.nvm
답변1
왜 그런 겁니까?
으로 호출하면 -c
bash는 다음과 같이 실행됩니다.비대화형껍데기. 기본 대화형 셸 시작 파일( /etc/bash.bashrc
, ~/.bashrc
)은 읽혀지지 않습니다. 강제로 ~/.bashrc
읽어도 본문은 실행되지 않을 가능성이 높습니다. 예를 들어 기본 Ubuntu 본문(계정 생성 중 /etc/skel에서 복사됨)에는 다음 줄이 포함됩니다.
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
이는 다음의 모든 것을 우회합니다.
너~할 수 있었다를 사용하여 대화형 셸을 강제로 bash -ic
실행하지만 .bashrc
.
답변2
노력하다
bash -ic nvm
Bash를 대화형 셸로 실행그리고명령을 제공하는 것은 bash 문서를 준수하지 않는 것 같지만 작동합니다.
답변3
나는로 전환했다https://www.npmjs.com/package/n이 경우에는 훨씬 더 잘 작동합니다.
nvm
이는 모든 bash 스크립팅에 대한 대안 이며 필요하지 않습니다. 이것이 아마도 위의 문제 없이도 작동하는 이유입니다.
n
다음 명령으로 설치할 수 있습니다.
npm install -g n