จนถึงเดือนนี้การกำหนดค่าเปลือกของฉันค่อนข้างเรียบง่าย (แค่ส่วนใหญ่.bashrcหรือ.bash_profileด้วยนามแฝงบางส่วน) แต่ฉันได้ทำการปรับโครงสร้างใหม่เพื่อที่ฉันจะได้รับพฤติกรรมที่แตกต่างกันขึ้นอยู่กับว่าฉันใช้ zsh และทุบตี พวกเขาแรกมาไฟล์เปลือก config ทั่วไปที่ควรทำงานอะไรก็ตามแล้วเชี่ยวชาญสำหรับเชลล์เฉพาะที่ใช้ (ฉัน symlink นี้)
วันนี้ฉันรู้สึกประหลาดใจเมื่อlsหยุดทำงาน มันกลับกลายเป็นว่าในระหว่างการรีแฟค.bashrcเตอร์
alias ls='ls --color=always'ที่ทำลายสิ่งต่าง ๆlsในการทุบตีใน Terminal ใน OSX เมื่อฉันเห็นว่า BSD lsชอบ-Gสี แต่ GNU (หรืออะไรก็ตามที่อยู่บน Ubuntu) ชอบ--colorมันชัดเจนว่ามีตัวเลือกไม่กี่ตัวที่แตกต่างกัน
คำถามของฉันคืออะไรวิธีที่ดีที่สุดในการพิจารณาความแตกต่างของตัวเลือกและระหว่างแกนกลาง BSD และ GNU คืออะไร? ฉันควรทดสอบตัวแปร env ในifบล็อกเพื่อดูว่ามีการใช้ระบบปฏิบัติการใดและใช้พฤติกรรมที่ถูกต้องหรือไม่ หรือมันเหมาะสมกว่าที่จะแยกไฟล์ปรับแต่งสำหรับแต่ละระบบปฏิบัติการ
ในขณะที่คำตอบสำหรับคำถามเหล่านี้อาจเป็นอัตนัยดูเหมือนว่าบทสรุปของขอบเขตของความแตกต่างระหว่าง coreutils ของ BSD และ GNU และกลยุทธ์ในการแก้ไขปัญหาเหล่านี้เพื่อให้การกำหนดค่าทั่วไปที่ใช้งานได้บน nix ส่วนใหญ่จะมีวัตถุประสงค์อย่างเป็นธรรม
ls -cls --colorแก้ไขคำถามของคุณเพื่อแก้ไข