
Bash 스크립트에서 sudo 명령을 실행하려고 합니다.
#!/bin/bash
sudo node app.js
이것은 나에게 충격을 주었다:
sudo: node: command not found
sudo 없이 node app.js만 실행하려고 하면 정상적으로 실행됩니다.
실행하려고 하면 sudo -h
sudo help가 인쇄됩니다.
그러나 시도하면 sudo node app.js
오류가 발생합니다.
답변1
node
비표준 경로에 있거나 적어도 루트 경로에 없는 것 같습니다 . 이 문제를 해결하는 방법에는 여러 가지가 있습니다.
전체 경로 사용
node
전체 경로 찾기 사용
which node
/home/user/bin/node
거기에 있다고 말하면 전화하세요.sudo /home/user/bin/node app.js
또는 @UlrichSchwarz가 제안한 대로 명령 대체를 통해 두 가지를 결합할 수 있습니다.
sudo $(which node) app.js
sudo
해당 위치에 있는 사용자에 대한 읽기/실행 권한이 필요하다는 것을 기억하십시오.sudo
다음을 수행할 때 이는 큰 문제가 아닙니다.root
환경 변수를 보존하는 옵션
sudo
으로 호출-E
sudo -E node app.js
$PATH
이렇게 하면 이전 상태 가 유지됩니다.sudo
sudo
자세한 내용은 맨페이지를 참조하세요 .http://linux.die.net/man/8/sudo