ใช้ Ubuntu ฉันเปิดเทอร์มินัลแล้วทำ
sudo bash
cd /
ls | head -n 1000
และส่งคืนไดเรกทอรีประมาณ 20 รายการ
อย่างไรก็ตามถ้าฉันทำ ls และไม่ได้แปะไปที่ใด ls ก็แค่ค้างไว้ที่นั่นจนกว่าฉันจะฆ่ามันจากเทอร์มินัลอื่น อาจเกิดอะไรขึ้น
แก้ไข:
> type ls
ls is aliased to `ls --color=auto`
แก้ไข:
> /bin/ls /
<normal response>
> /bin/ls --color=auto
<hangs indefinitely>
เหตุใดการระบายสีเอาต์พุตของ ls ทำให้คำสั่งนี้หยุดทำงาน
strace ls
อาจช่วยให้คุณระบุปัญหาได้ strace
แสดงการเรียกใช้ระบบทั้งหมดที่ทำโดยโปรแกรมที่เรียกใช้
/bin/ls
(หรือมากกว่าcommand ls
) เพื่อเรียกใช้ls
โดยไม่ใช้ตัวเลือกที่มีนามแฝงเพื่อยืนยันว่าเป็นตัวเลือกสีที่สร้างความแตกต่างหรือไม่ FWIW ls
จะปิดการระบายสีเมื่อเอาต์พุตเป็นไพพ์หรืออุปกรณ์อื่นที่ไม่ใช่เทอร์มินัล
\ls
type ls
เพื่อตรวจสอบนามแฝงที่เป็นไปได้ ฯลฯ