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 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.
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 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
dash 0.5.7-4:archlinux tiếp tục sử dụng bash và không bao giờ chuyển sang dash
A POSIX compliant shell that aims to be as small as possible
freebsd replace tất cả các script perl bằng POSIX shell script (perl is bloat)hvn@archhvn: ~ () $ ls -l /bin/sh lrwxrwxrwx 1 root root 4 Aug 25 19:06 /bin/sh -> bash
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.
Nhưng dash nhanh hơn là bao nhiêu?man 1 bash BUGS It's too big and too slow.
có thể thấy dash nhanh > 3 lần bash,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
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
=> 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
No comments:
Post a Comment