โปรแกรม Shell ที่มีขนาดใหญ่ที่สุด
(github.com/oils-for-unix)-
โปรแกรมเชลล์ที่ใหญ่ที่สุดในโลก
-
akinomyoga/ble.sh: รวม 61K LoC (46K SLoC) เป็น Bash Line Editor หรือโปรแกรมแก้ไขบรรทัดแบบโต้ตอบสไตล์ fish ที่เขียนด้วย bash ล้วน ๆ ไฟล์หลัก
out/ble.shมี 30K LoC (23K SLoC) และทั้งโปรเจกต์มีมากกว่า 60K+ LoC มีคอมเมนต์ภาษาญี่ปุ่นจำนวนมาก รวมถึงมีภาพรวมของวิธีการทำงานของ ble.sh ซึ่งแสดงให้เห็นการใช้โครงสร้างข้อมูลที่ซับซ้อนมาก -
kalua: ส่วนเสริมของ OpenWRT ที่ประกอบด้วย POSIX shell ราว 56K SLoC/บรรทัด
-
bashdb: ดีบักเกอร์สำหรับ bash ที่ประกอบด้วย bash ราว 14K บรรทัด และมีประวัติการพัฒนาดีบักเกอร์ที่น่าสนใจ
-
drwetter/testssl.sh: ประกอบด้วย bash 21K บรรทัดในไฟล์เดียว ดูเหมือนจะเขียนด้วยมือทั้งหมด
-
Simplenetes: Kubernetes ที่เขียนด้วย Shell 17K บรรทัด น่าทึ่งแต่ตอนนี้ไม่มีการพัฒนาแล้ว
-
rkhunter: บนเว็บไซต์ทางการระบุว่าเป็น Bourne shell 21K บรรทัด เขียนขึ้นในช่วงปี 2003-2018
-
romkatv/powerlevel10k: ในไดเรกทอรี
internal/มีสคริปต์ zsh 12K บรรทัด และยังมีสคริปต์ตั้งค่าและสคริปต์ช่วยเหลืออีก 8K บรรทัด -
dylanaraps/neofetch: ใช้ bash 3.2 จำนวน 10K บรรทัดเพื่อแสดงข้อมูลระบบ
-
xwmx/nb: ตัว nb เองมี bash 26K LoC (22K SLoC) และหากนับการทดสอบ bats เป็น bash ด้วย จะมี 91K LoC (61K SLoC)
-
distrobox: ประกอบด้วยสคริปต์ bash มากกว่า 7K บรรทัด ทำให้สามารถใช้ลินุกซ์ดิสทริบิวชันใดก็ได้ภายในเทอร์มินัล
-
acme.sh: สคริปต์เชลล์ 7K บรรทัดสำหรับออกและต่ออายุใบรับรอง
-
inxi 2.3.56 [obsolete]: ประกอบด้วย bash 16K บรรทัด เริ่มต้นในปี 2008 ในฐานะ fork ของ infobash
-
bashforth: มีประมาณ 3800 บรรทัด แต่สามารถใช้งานเป็นภาษาโปรแกรมจริงได้
-
yoda: มีขนาดเพียงครึ่งหนึ่งของ bashforth แต่มีทั้งอินเทอร์พรีเตอร์และคอมไพเลอร์ครบถ้วน
-
vegardit/bash-funk: ไลบรารี Bash ขนาดรวม 27K LoC (24K SLoC)
-
Relax-and-Recover: 35K LoC (24K SLoC) เครื่องมือสำรองและกู้คืนข้อมูล
-
abcde / A Better CD Encoder: ใช้สำหรับริป CD และมีขนาดประมาณ 5.5k LoC
-
thc-segfault: 3.3K LoC เซิร์ฟเวอร์ pubnix ที่สร้างขึ้นด้วย Bash เป็นหลัก
-
ffmpeg/configure: 8.4K LoC สคริปต์ตั้งค่าของ FFmpeg ที่เขียนด้วยมือทั้งหมด
-
ffhevc: 4k LoC สคริปต์ wrapper ของ Bash ที่เขียนด้วยมือทั้งหมด สำหรับเข้ารหัสวิดีโอ HEVC โดยใช้ FFmpeg และ libx265
-
ffx264: 3.9k LoC สคริปต์ wrapper ของ Bash ที่เขียนด้วยมือทั้งหมด สำหรับเข้ารหัสวิดีโอ H.264/AVC โดยใช้ FFmpeg และ libx264
-
h264enc: 9.2k LoC สคริปต์ wrapper ของ Bash ที่เขียนด้วยมือทั้งหมด สำหรับเข้ารหัสวิดีโอ H.264/AVC โดยใช้ MEncoder
-
bashtop: 5.3k LoC ตัวตรวจสอบทรัพยากรระบบ
-
halcyon: 6.6k LoC ระบบติดตั้งแอป Haskell
-
winetricks: สคริปต์เชลล์ 22K บรรทัด สำหรับติดตั้งโปรแกรม Windows หลากหลายตัวบน Wine
-
wordshell: โค้ดราว 7k บรรทัด สำหรับจัดการหลายไซต์ WordPress จากบรรทัดคำสั่ง
-
BaCon: โค้ดราว 10k บรรทัด สำหรับแปลงโปรแกรมที่เขียนด้วย BASIC ให้เป็น C
-
-
ภาษาคล้ายเชลล์ / DSL
-
modernish: ภาษาถิ่นของเชลล์แบบพกพาที่เขียนด้วยเชลล์
-
bats: DSL สำหรับเขียนเทสต์ ซึ่งสร้างโค้ด bash
-
bashible: DSL ใน bash ที่คล้ายกับ Ansible
-
clash: เฟรมเวิร์กเชิงวัตถุที่เข้ากันได้กับ POSIX shell สมัยใหม่
-
bash Infinity: ไลบรารีมาตรฐานและเฟรมเวิร์ก boilerplate สำหรับ bash
-
-
โปรแกรมขนาดเล็ก
-
Alpine, Aboriginal, Debian scripts: ดูโพสต์ในบล็อกอ้างอิง
-
Completion scripts: มีขนาดใหญ่ แต่บ่อยครั้งก็ซ้ำ ๆ กัน
-
_git Zsh completion: โค้ด 8.3k บรรทัด
-
git-completion.bash: Docker completion
-
dyne/Tomb: สคริปต์ zsh ราว 3500 บรรทัด
-
Basalt: ตัวจัดการแพ็กเกจที่ทำงานได้ครบถ้วน เขียนด้วย Bash ล้วน (ประมาณปี 2021) แม้มีเพียงไม่กี่พันบรรทัด แต่ก็มี ecosystem ที่อุดมสมบูรณ์แล้ว (แอป/ไลบรารีมากกว่า 15 รายการ)
-
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เมื่อ 25 ปีก่อน ที่ Sony มีคนถูกมอบหมายให้ทำโปรเจ็กต์ปรับปรุงระบบจัดการคำสั่งซื้อที่ช้ามากและล่มบ่อย
เคยเขียนตัวติดตั้งสำหรับ Enrust CA และไดเรกทอรี ซึ่งต่อมาพัฒนาให้รันได้บน Unix ทุกตัว
เคยพยายามเขียนอินเทอร์พรีเตอร์ของภาษาเขียนสคริปต์ Lil ด้วย bash แต่เลือก AWK เพราะการคำนวณเลขทศนิยมทำได้ยากและรองรับอาร์เรย์ได้จำกัด
Bash script ไม่เหมาะกับการเขียนโปรแกรมที่ซับซ้อน
สคริปต์ rkhunter มีโค้ดที่ดีและให้ข้อมูลมาก
โปรแกรมเชลล์ที่ใหญ่ที่สุดที่เคยใช้ในอดีตคือ abcde ซึ่งมีโค้ดประมาณ 5,500 บรรทัด
ไคลเอนต์ FreeBSD Update มีโค้ด sh ราว 3,600 บรรทัด
เชลล์อาจเป็นเครื่องมือเดียวที่มั่นใจได้ว่ามีใช้งาน แต่ถ้าจะเขียนแอปเชลล์ขนาดใหญ่ ก็ควรคิดให้รอบคอบ
สคริปต์ acme.sh มี 7.1K บรรทัด ใช้สำหรับออกและต่ออายุใบรับรองจาก Lets Encrypt
เคยใช้เชลล์สคริปต์ใน mod_pagespeed เพื่อทดสอบระบบ แต่การเปลี่ยนไปใช้ Python น่าจะดีกว่า