Saya memiliki fungsi di ~/.zshrc
:
findPort() {
lsof -t -i :$1
}
Doa yang biasa adalah findPort 3306
.
Saya ingin menjalankannya dengan hak istimewa yang ditinggikan. Tapi saya mendapatkan "perintah tidak ditemukan".
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
Saya kira alasannya adalah bahwa pengguna root berjalan sebagai shell non-interaktif (dengan demikian tidak merujuk ke .zshrc), atau merujuk ke yang berbeda .zshrc
.
Saya telah melihat pertanyaan serupa tentang alias
, tetapi tidak ada pertanyaan tentang fungsi yang ditentukan pengguna. Jawaban untuk masalah ini terkait alias
dengan menambahkan alias ke ~/.zshrc
:
alias sudo='nocorrect sudo '
Atau mungkin:
alias sudo='sudo '
Saya sudah mencoba kedua solusi ini, dan masalahnya masih ada (ya saya sudah meluncurkan shell).
Saya juga mencoba menjalankan sudo chsh
untuk memastikan bahwa shell root saya berjalan di bawah zsh
. Tak satu pun dari solusi ini menghilangkan masalah "perintah tidak ditemukan".
Apakah ada cara untuk menjalankan fungsi yang ditentukan pengguna saya di bawah sudo?