ฉันพยายามรับสีเมื่อทำงานshellcheck <file> | lessดังนั้นฉันจึงลองคำตอบข้างต้น แต่พวกมันให้เอฟเฟ็กต์ที่แปลกประหลาดซึ่งข้อความจะถูกชดเชยในแนวนอนจากตำแหน่งที่ควรจะเป็น:
In ./all/update.sh line 6:
                          for repo in $(cat repos); do
                                                                  ^-- SC2013: To read lines rather than words, pipe/redirect to a 'while read' loop.
(สำหรับผู้ที่ไม่คุ้นเคยกับ shellcheck บรรทัดที่มีคำเตือนควรจะตรงกับที่เป็นปัญหา)
เพื่อคำตอบข้างต้นเพื่อทำงานกับ shellcheck ฉันลองหนึ่งในตัวเลือกจากความคิดเห็น:
faketty() {                       
    0</dev/null script -qfc "$(printf "%q " "$@")" /dev/null
}
วิธีนี้ใช้ได้ผล ฉันยังเพิ่ม--returnและใช้ตัวเลือกแบบยาวเพื่อทำให้คำสั่งนี้ไม่น่าเชื่อถือน้อยลงเล็กน้อย:
faketty() {                       
    0</dev/null script --quiet --flush --return --command "$(printf "%q " "$@")" /dev/null
}
ทำงานใน Bash และ Zsh