내 기능이 있습니다 ~/.zshrc
:
findPort() {
lsof -t -i :$1
}
일반적인 호출은 findPort 3306
입니다.
높은 권한으로 실행하고 싶습니다. 그러나 "명령을 찾을 수 없습니다"라는 메시지가 나타납니다.
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
이유는 루트 사용자가 비 대화식 쉘로 실행하거나 (.zshrc를 참조하지 않음) 다른 것을 참조하기 때문.zshrc
입니다.
에 관한 비슷한 질문을 보았지만 alias
사용자 정의 함수에 관한 질문은 없습니다. 이 문제에 대한 답은 다음 alias
에 별칭을 추가하는 것입니다 ~/.zshrc
.
alias sudo='nocorrect sudo '
또는 아마도 :
alias sudo='sudo '
이 두 가지 솔루션을 모두 시도했지만 문제가 계속 발생합니다 (예 : 셸을 다시 시작했습니다).
또한 sudo chsh
루트 쉘이 아래에서 실행되도록 실행 을 시도했습니다 zsh
. 이러한 솔루션 중 어느 것도 "명령을 찾을 수 없음"문제를 제거하지 못합니다.
sudo에서 사용자 정의 함수를 실행하는 방법이 있습니까?