Tôi có một chức năng trong ~/.zshrc
:
findPort() {
lsof -t -i :$1
}
Các cách gọi thông thường là findPort 3306
.
Tôi muốn chạy nó với đặc quyền nâng cao. Nhưng tôi nhận được "lệnh không tìm thấy".
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
Tôi cho rằng lý do là người dùng root chạy dưới dạng shell không tương tác (do đó không đề cập đến .zshrc) hoặc đề cập đến một cái khác .zshrc
.
Tôi đã thấy các câu hỏi tương tự liên quan alias
, nhưng không có câu hỏi liên quan đến các chức năng do người dùng xác định. Các câu trả lời cho vấn đề này liên alias
quan đến việc thêm bí danh vào ~/.zshrc
:
alias sudo='nocorrect sudo '
Hoặc có lẽ:
alias sudo='sudo '
Tôi đã thử cả hai giải pháp này và vấn đề vẫn còn tồn tại (vâng, tôi đã khởi động lại vỏ).
Tôi cũng đã thử chạy sudo chsh
để đảm bảo rằng vỏ gốc của tôi chạy bên dưới zsh
. Không có giải pháp nào trong số này loại bỏ vấn đề "lệnh không tìm thấy".
Có cách nào để chạy các chức năng do người dùng xác định theo sudo không?