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