ฉันมีฟังก์ชั่นใน~/.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 หรือไม่