// และ :: ในค่าของตัวแปรสภาพแวดล้อมหมายถึงอะไร


3

บนเครื่อง Linux ของฉันตัวแปรสภาพแวดล้อมบางตัวมีรายการไดเรกทอรี ไดเรกทอรีจะถูกคั่นด้วย :. แต่บางครั้งก็ถูกคั่นด้วย ::. มันเป็นเพียงความผิดพลาดที่ควรได้รับการปฏิบัติตาม : หรือหมายความว่าและสตริงว่างเปล่าเป็นหนึ่งในไดเรกทอรี (ที่อาจจะตีความว่าเป็นไดเรกทอรีปัจจุบัน)

ไดเรกทอรีส่วนใหญ่ที่ระบุในตัวแปรสภาพแวดล้อมมีรูปแบบนี้:

/aaa/bbb/ccc

อย่างไรก็ตามบางคนมีรูปแบบนี้:

/aaa/bbb//ccc

หมายเหตุทับสองครั้งระหว่าง bbb และ ccc. มันเป็นเพียงความผิดพลาดที่ถูกตีความว่าเป็นเฉือนเดียวหรือมีความหมายพิเศษหรือไม่?

คำตอบ:


3

ลำไส้ใหญ่คู่ ( :: ) ไม่แน่นอนหมายถึงไดเรกทอรีปัจจุบัน คู่มือทุบตี อธิบาย PATH เช่น:

รายการไดเร็กทอรีที่คั่นด้วยโคลอนซึ่งเชลล์ค้นหา   คำสั่ง ชื่อไดเร็กทอรีที่มีความยาวเป็นศูนย์ (null) ในค่า PATH   บ่งชี้ไดเรกทอรีปัจจุบัน ชื่อไดเรกทอรีว่างอาจปรากฏเป็น   สองโคลอนที่อยู่ติดกันหรือเป็นโคลอนเริ่มต้นหรือต่อท้าย

แต่โดยส่วนตัวฉันคิดว่าเป็นการดีกว่าที่จะระบุไดเรกทอรีปัจจุบันอย่างชัดเจน (เช่น /foo/bar:. ) เพื่อความชัดเจน

สำหรับสแลชจำนวนสแลชที่อยู่ติดกันใด ๆ จะถือว่าเป็นสแลชเดียว


1

ตัวคั่น '/' หลายตัวถูกละเว้น:

$ cd .////somedir

เทียบเท่ากับ

$ cd somedir

สำหรับตัวคั่นพิเศษใน PATH ของคุณการทดลองเพียงเล็กน้อยชี้ให้เห็นว่าพวกมันถูกละเว้นเช่นกัน

อย่างน้อยนี่:

/home/jon.kiparsky:2040 $ echo $PATH
/home/jon.kiparsky/bin::::::/home/jon.kiparsky/bin::/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

ไม่ทำลายเส้นทางของฉัน! :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.