ในบางครั้งฉันเห็นว่าไอคอนโฟลเดอร์ในแถบชื่อเรื่องของหน้าต่างเทอร์มินอลของฉันมีเครื่องหมายคำถามซ้อนทับเช่นหนึ่ง:
สิ่งนี้หมายความว่า? ดูเหมือนว่าจะไม่มีผลกระทบหรือปัญหาที่ฉันสังเกตเห็น - ฉันแค่อยากรู้
ฉันใช้ OS X 10.8 (Mountain Lion)
ในบางครั้งฉันเห็นว่าไอคอนโฟลเดอร์ในแถบชื่อเรื่องของหน้าต่างเทอร์มินอลของฉันมีเครื่องหมายคำถามซ้อนทับเช่นหนึ่ง:
สิ่งนี้หมายความว่า? ดูเหมือนว่าจะไม่มีผลกระทบหรือปัญหาที่ฉันสังเกตเห็น - ฉันแค่อยากรู้
ฉันใช้ OS X 10.8 (Mountain Lion)
คำตอบ:
เครื่องหมายคำถาม (และรายการเมนูป๊อปอัปที่ปิดใช้งาน) บ่งชี้ว่า Terminal คิดว่าไดเรกทอรีการทำงานอยู่ในคอมพิวเตอร์ระยะไกลดังนั้นคุณจึงไม่สามารถนำทางไปยัง Finder ใน Finder ได้โดยใช้เมนูป๊อปอัป หากคุณดูรายการสุดท้ายในเมนูป๊อปอัพ (คำสั่งคลิกที่ไอคอน "พร็อกซี") คุณจะเห็นคอมพิวเตอร์ / โฮสต์ที่เทอร์มินัลคิดว่าไดเรกทอรีการทำงานเปิดอยู่ คุณควรพบว่าไม่ใช่ชื่อปัจจุบันของคอมพิวเตอร์
หากคุณกำลังใช้ bash (เชลล์เริ่มต้นบน macOS) โดยค่าเริ่มต้นมันจะส่งลำดับการควบคุมไปยังเทอร์มินัลที่แต่ละพรอมต์เพื่อบอก Terminal ถึงไดเรกทอรีการทำงานปัจจุบัน เนื่องจากลำดับการควบคุมอาจมาจากเครื่องโลคัลหรือคอมพิวเตอร์ระยะไกลจึงส่งแบบแผน“ ไฟล์:” URL รวมถึงชื่อโฮสต์และเทอร์มินัลจะตรวจสอบว่าชื่อแมปไปยังเครื่องปัจจุบัน หากไม่เป็นเช่นนั้นเทอร์มินัลจะปิดใช้งานรายการเมนูป๊อปอัพพา ธ เนื่องจากไม่สอดคล้องกับไดเรกทอรีในเครื่อง
คุณสามารถดูรหัสที่ส่งลำดับการควบคุมใน/etc/bashrc_Apple_Terminal
(หรือ/etc/bashrc
ใน macOS รุ่นเก่ากว่า)
[โปรดทราบว่าหากคุณไม่ได้ใช้ bash หรือคุณได้ปรับแต่งเพื่อให้พฤติกรรมเริ่มต้นไม่เกิดขึ้น แต่เชลล์ของคุณ (หรือโปรแกรมอื่น ๆ ที่คุณใช้งานอยู่) กำลังส่งลำดับการควบคุมเพื่อตั้งค่าหน้าต่างหรือแท็บ ( ไอคอน) ชื่อเทอร์มินัลจะตรวจสอบเพื่อดูว่ามีชื่อพา ธ หรือไม่จากนั้นจะตรวจสอบว่าสอดคล้องกับชื่อพา ธ ในพื้นที่ที่ถูกต้องหรือไม่ มิฉะนั้นจะไม่แสดงไอคอนพร็อกซีหน้าต่างเลย]
สถานการณ์ที่เทอร์มินัลไม่สามารถจำได้ว่า "ไฟล์:" URL อยู่ในโฮสต์ปัจจุบันคือถ้าคุณเปลี่ยนการกำหนดค่าเครือข่ายของคุณในขณะที่เชลล์กำลังทำงาน กรณีทั่วไปคือการทำให้คอมพิวเตอร์แบบพกพาเข้าสู่โหมดสลีปและย้ายไปยังตำแหน่งอื่นจากนั้นจึงปลุก ชื่อโฮสต์และที่อยู่ในพื้นที่จะมีการเปลี่ยนแปลง แต่$HOSTNAME
ตัวแปรสภาพแวดล้อมของเชลล์ยังคงมีชื่อโฮสต์เก่าและนั่นคือสิ่งที่มันส่งในลำดับการควบคุม ในการแก้ไขปัญหานี้ให้อัพเดตตัวแปรสภาพแวดล้อมด้วย:
HOSTNAME=$(hostname)
สถานการณ์อื่นคือที่ที่คุณออกจากเทอร์มินัลเปลี่ยนการกำหนดค่าเครือข่ายจากนั้นเปิดเทอร์มินัลพร้อมเปิดใช้งาน Resume เทอร์มินัลจะคืนค่าหน้าต่างและแท็บพร้อมกับ URL ไดเรกทอรีการทำงานล่าสุดที่ถูกส่งไป หากคุณพบกรณีนี้$HOSTNAME
จะเป็นรุ่นล่าสุด - ตั้งแต่เริ่มเชลล์ใหม่ แต่เทอร์มินัลยังคงสามารถมี URL ค้างจนกว่าคุณจะได้รับเชลล์เพื่ออัปเดตอีกครั้ง หากการแสดงพรอมต์คำสั่งไม่สามารถแก้ปัญหาได้ให้ลองเปลี่ยนไดเรกทอรีด้วยcd
เพื่อให้เชลล์ทำการอัปเดต