![스크립트에서 sudo를 사용하여 명령을 찾을 수 없습니다.](https://linux55.com/image/89590/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20sudo%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%B0%BE%EC%9D%84%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
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