Skip to main content

bash vs dash vs zsh vs python cho scripting

ubuntu / debian chuyển sang dùng dash làm /bin/sh 3-4 năm trước, vì dash nhanh và nhẹ hơn
dash 0.5.7-4:
A POSIX compliant shell that aims to be as small as possible
 archlinux tiếp tục sử dụng bash và không bao giờ chuyển sang dash
hvn@archhvn: ~ () $ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Aug 25 19:06 /bin/sh -> bash
freebsd replace tất cả các script perl bằng POSIX shell script (perl is bloat)

dash hay bash
đây là đánh đổi giữa tốc độ / tính portable và tính năng
bash có nhiều tính năng hơn dash (ví dụ: array) nhưng nặng/chậm hơn dash, không POSIX compatible.
man 1 bash
BUGS
       It's too big and too slow.
Nhưng dash nhanh hơn là bao nhiêu?
hvn@archhvn: /tmp () $ cat stupid.sh 
for i in `seq 100000`; do
    echo > /dev/null
done
hvn@archhvn: /tmp () $ time bash stupid.sh 

real 0m1.206s
user 0m0.830s
sys 0m0.333s
hvn@archhvn: /tmp () $ time bash stupid.sh 

real 0m1.186s
user 0m0.830s
sys 0m0.347s
hvn@archhvn: /tmp () $ time dash stupid.sh 

real 0m0.406s
user 0m0.130s
sys 0m0.273s
hvn@archhvn: /tmp () $ time dash stupid.sh 

real 0m0.413s
user 0m0.153s
sys 0m0.257s
có thể thấy dash nhanh > 3 lần bash,
NHƯNG là khi bạn test với hẳn 100000 vòng loop,
liệu bạn có script nào phải loop nhiều như vậy?
nhanh hơn < 1 s như vậy có đáng để bỏ đi những tính năng không?
  • bash nhiều tài liệu hơn, phổ biến hơn
bạn có thực sự cần script của mình POSIX compliant?
=> bash wins, bạn không cần posix compliant, bạn không cần dash

bash vs zsh
viết vài dòng bash thì đơn giản, nhưng viết 1 chương trình > 30 dòng là mọi sự loằng ngoằng của bash bắt đầu lộ diện. Lúc đó là lúc bạn nên dùng 1 script language xịn hơn.
Và giữa cuộc chiến zsh vs Python, không nói ai cũng biết đâu là người chiến thắng.
(nhưng để làm shell interactive thì rõ ràng zsh > bash >> python)

Kết luận
  • dùng bash cho script đơn giản
  • dùng ngôn ngữ bạn thành thạo cho script phức tạp hơn
Lâu không viết nhảm, hết rồi :3 

Comments

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG