จนถึงเดือนนี้การกำหนดค่าเปลือกของฉันค่อนข้างเรียบง่าย (แค่ส่วนใหญ่.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 -c
ls --color
แก้ไขคำถามของคุณเพื่อแก้ไข