Score:4

ตัวแปร PATH ของระบบที่ซ้ำกัน (snap/bin:/snap/bin)

ธง jp

เมื่อฉันวิ่ง สะท้อน $PATH ผลลัพธ์ที่ซ้ำกัน snap/bin:/snap/bin ปรากฏขึ้นในตอนท้ายและดูผิดปกติ

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/ ถัง

การทำซ้ำนี้ไม่ต้องการหรือไม่ ถ้าเป็นเช่นนั้นจะเปลี่ยนแปลงได้อย่างไร?

Score:5
ธง gr

อาจอยู่ในของคุณ ~/.bashrc หรือในของคุณ ~/.profile มีคำสั่งเพิ่มว่า /snap/ถัง ไปที่ $เส้นทาง โดยไม่ได้ตรวจสอบก่อนว่ายังอยู่ใน $เส้นทาง.

พิจารณาว่ารายการที่ซ้ำกันใน $เส้นทาง ตัวแปรไม่มีผลกระทบใด ๆ เมื่อคุณเรียกใช้คำสั่งที่อยู่ในของคุณ $เส้นทาง. การชะลอตัวอาจปรากฏขึ้นในทางกลับกันเมื่อคุณเรียกใช้คำสั่งที่ไม่ได้ใช้งาน $เส้นทาง (เนื่องจากการค้นหาคำสั่งดำเนินการอย่างไร้ประโยชน์ สองครั้งหรือมากกว่านั้นเมื่อมีรายการที่ซ้ำกัน) แม้ว่าฉันจะคิดว่ามันยากที่จะรับรู้ถึงการชะลอตัวนี้ รายการที่ซ้ำกันยังสร้างความรำคาญเล็กน้อยเมื่อคุณต้องการตรวจสอบด้วยสายตา $เส้นทาง ตัวแปร.

หากคุณต้องการหลีกเลี่ยงรายการที่ซ้ำกันในของคุณ $เส้นทางคุณสามารถเพิ่มคำสั่งนี้ใน ~/.profile ไฟล์ (นั่นคือ ตำแหน่งที่ดีที่สุดสำหรับตัวแปรด้านสิ่งแวดล้อม):

# ลบเส้นทางที่ซ้ำกันในตัวแปร PATH
PATH="$(printf "%s" "$PATH" | awk -v RS=':' '!a[$1]++ {if (NR > 1) printf RS; printf $1}')"

คำสั่งนี้ใช้ อึดอัด เพื่อระบุทุกรายการใน $เส้นทาง ตัวแปร (พวกเขาถูกคั่นด้วยวิธีการของ : ตัวละคร) และสร้างใหม่ $เส้นทาง ตัวแปรหลีกเลี่ยงการเพิ่มโฟลเดอร์ซ้ำ นอกจากนี้ยังรักษาการจัดเรียงดั้งเดิมของโฟลเดอร์ภายใน $เส้นทาง ตัวแปร.

คุณสามารถเปิด ~/.profile ด้วยโปรแกรมแก้ไขข้อความที่คุณต้องการ หากคุณเปิดโดยเทอร์มินัล คุณไม่จำเป็นต้องใช้ ซูโด เพราะเป็นของผู้ใช้ของคุณ

XJMZX avatar
jp flag
ขอบคุณตัน นั่นทำให้บางสิ่งชัดเจนขึ้นในใจของฉันเกี่ยวกับสิ่งที่เกิดขึ้นกับสภาพแวดล้อม vaiables, bash.rc และ .profile - ถ้าฉันสามารถถามได้ว่า .profile เป็นที่ที่ดีที่สุด แล้วทำไมคำสั่งอื่นๆ ถึงระบุ ~/.bashrc ? เช่น echo "export PATH=$PATH:~/go/bin:/usr/local/go/bin" >> ~/.bashrc
Lorenz Keel avatar
gr flag
ตรวจสอบ https://superuser.com/questions/183845/ which-config-files-should-be-used-for-setting-bash-environment-variables/183956#183956 และ https://superuser.com/a/183980
Lorenz Keel avatar
gr flag
หากคุณใช้ zsh ลิงก์นี้อาจให้ข้อมูลเพิ่มเติมแก่คุณ: https://superuser.com/a/187673
XJMZX avatar
jp flag
ขอบคุณ. นั่นน่าจะช่วยได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา