У мене функція ~/.zshrc
:
findPort() {
lsof -t -i :$1
}
Зазвичай виклик є findPort 3306
.
Я хочу керувати ним з підвищеними привілеями. Але я отримую "команду не знайдено".
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
Я припускаю, що причина полягає в тому, що користувач root або працює як неінтерактивна оболонка (таким чином, не посилається на .zshrc), або посилається на іншу .zshrc
.
Я бачив подібні питання стосовно alias
, але жодного питання стосовно визначених користувачем функцій. Відповіді на цю проблему стосуються alias
додавання псевдоніма до ~/.zshrc
:
alias sudo='nocorrect sudo '
А може:
alias sudo='sudo '
Я спробував обидва ці рішення, і проблема все ще існує (так, я перезапустив оболонку).
Я також спробував запустити, sudo chsh
щоб переконатися, що моя коренева оболонка працює під zsh
. Жодне з цих рішень не усуває проблему "команда не знайдена".
Чи є спосіб запустити мої визначені користувачем функції під sudo?