เมื่อเร็ว ๆ นี้มีแนวโน้มโดยเครื่องมือบรรทัดคำสั่งเพื่อใช้สีแฟนซี ANSI ในบันทึกผลลัพธ์ของพวกเขา (ตัวอย่างเช่น NPM และโฮสต์ของเครื่องมือตาม nodejs, rvm, นักเทียบท่าและเครื่องมือ "ทันสมัย" อื่น ๆ อีกสองสาม)
สิ่งนี้ทำให้การอ่านบนหน้าจอ (*) เป็นเรื่องที่ดี แต่ไม่ดีนักเมื่อคุณต้องการไพพ์เอาต์พุตไปยังล็อกไฟล์หรือผ่านการขนส่งที่ไม่รองรับ ANSI เช่นเครื่องมือการเรียกใช้จากระยะไกลและโซลูชันการตรวจสอบผ่านเว็บ เครื่องมือที่เป็นผู้ใหญ่มากขึ้นอย่างน้อยก็มีความเหมาะสมในการตรวจจับเมื่อเอาต์พุตไม่ใช่ TTY และปิดการใช้สี แต่ไม่ใช่กับ CLIs ใหม่ที่เป็นมิตรกับผู้ใช้ซึ่งทำให้ฉันพยายามกำจัดสี ANSI ด้วยการวางท่อ เอาท์พุทผ่านกระบวนการอื่น
การซึมซับผลลัพธ์ที่ผ่านมาs/\x1B\[[0-9]*\w//g
ดูเหมือนจะทำให้งานเสร็จ แต่มีวิธีที่สะอาดกว่านี้เพียงคัดลอกการวางนิพจน์ปกติลงในสคริปต์ทั้งหมดของฉัน
(*) อย่างน้อยก็จนกว่าเครื่องมือจะพยายามแสดงข้อผิดพลาดเป็นสีแดงเข้มบนเทอร์มินัลพื้นหลังสีเข้มของคุณ
is there a cleaner approach then just copy pasting regular expressions into all of my scripts?
- บันทึกตัวกรองการล้างข้อมูลของคุณลงในไฟล์ที่ชื่อว่า '/ usr / local / bin / stripttycolor.sh` หรืออะไร? ด้วยวิธีนี้คุณมี regex จำกัด อยู่ในที่เดียว?
--no-color
แฟล็ก คำสั่งอื่น ๆ อีกมากมายมีสถานะคล้ายกัน
bower
กัน